2

次のコードを使用して、正規表現が正しいことを確認しました。

#this is the string where I'm trying to extract everything within the []
$text = "MS14-012[2925418],MS14-029[2953522;2961851]"
$text -match "\[(.*?)\]"
$matches[1]

出力:

True
2925418

たとえば、次のように、Select-String を使用して結果を取得したいと思います。

$result = $text| Select-String -Pattern $regex

出力:

MS14-012[2925418],MS14-029[2953522;2961851]

他に試したこと:

$result = Select-String -Pattern $regex -InputObject $text
$result = Select-String -Pattern ([regex]::Escape("\[(.*?)\]")) -InputObject $text

そして、いくつかのバリエーションと、正規表現などのさまざまな種類の " および ' など。私は本当にアイデアがありません...

Select-String を使用しているときに正規表現が一致しない理由を教えてください。

4

1 に答える 1

1

出力を Get-Member にパイプした後、Select-String が MatchInfo オブジェクトを返し、結果を取得するには MatchInfo.Matches プロパティにアクセスする必要があることに気付きました。ヒントをくれた Mathias R. Jessen に感謝します! ;)

于 2016-05-17T17:08:06.417 に答える