0

以下のテキストの最初の「abcd」部分を返したいと思います。

 00abcd126456\x 00abcd126456\x

最初の「00」と最初の(6桁+「\ x」)の間のすべてのテキストを選択したい。すべての文字列は「00」で始まります。

私は次のように実験してきました:

^ 00(.*)\d{6}\\x

しかし、それは明らかに文字列全体を選択します。

助けてください。

4

1 に答える 1

3

欲張りでない数量詞を使用します。

^ 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
于 2013-01-25T10:23:48.043 に答える