以下のテキストの最初の「abcd」部分を返したいと思います。
00abcd126456\x 00abcd126456\x
最初の「00」と最初の(6桁+「\ x」)の間のすべてのテキストを選択したい。すべての文字列は「00」で始まります。
私は次のように実験してきました:
^ 00(.*)\d{6}\\x
しかし、それは明らかに文字列全体を選択します。
助けてください。
以下のテキストの最初の「abcd」部分を返したいと思います。
00abcd126456\x 00abcd126456\x
最初の「00」と最初の(6桁+「\ x」)の間のすべてのテキストを選択したい。すべての文字列は「00」で始まります。
私は次のように実験してきました:
^ 00(.*)\d{6}\\x
しかし、それは明らかに文字列全体を選択します。
助けてください。
欲張りでない数量詞を使用します。
^ 00(.*?)\d{6}\\x
*?
一致を成功させるために、可能な限り少ない文字のみを一致させます。代わりに、可能な限り多くの文字*
を一致させます。
キャプチャグループをいじりたくない場合は、ルックアラウンドを使用することもできます。
(?<=^ 00).*?(?=\d{6}\\x)
クイックPowerShellテスト:
PS> ' 00abcd126456\x 00abcd126456\x' -match '(?<=^ 00).*?(?=\d{6}\\x)'; $Matches
True
Name Value
---- -----
0 abcd