1

正規表現:

((?<=blah)[^@\Z]+)

blah文字列の前後または文字列の終わりにある記号記号をキャプチャすることになってい@ます。\Z文字クラスで囲む正しいテクニックはありますか?

4

1 に答える 1

3

いいえ、文字クラスにはリテラル文字または他の文字クラスのみを含めることができます。あなたの例は、アンカーではないものと一致しますが、それ@自体\Zは文字クラスではないため、無視されます。^カレットは文字グループを否定することに注意してください。|代わりに「または」記号を使用してグループを使用してください。

((?<=blah)(?:[^@]+|\Z))

そこで、キャプチャしないグループ((?:...))を使用して、2つのオプションをグループ化しました。グループは、以外の文字と一致するか @文字\Zの終わりのアンカーと一致します。

于 2013-02-03T12:12:39.503 に答える