正規表現:
((?<=blah)[^@\Z]+)
blah
文字列の前後または文字列の終わりにある記号記号をキャプチャすることになってい@
ます。\Z
文字クラスで囲む正しいテクニックはありますか?
正規表現:
((?<=blah)[^@\Z]+)
blah
文字列の前後または文字列の終わりにある記号記号をキャプチャすることになってい@
ます。\Z
文字クラスで囲む正しいテクニックはありますか?
いいえ、文字クラスにはリテラル文字または他の文字クラスのみを含めることができます。あなたの例は、アンカーではないものと一致しますが、それ@
自体\Z
は文字クラスではないため、無視されます。^
カレットは文字グループを否定することに注意してください。|
代わりに「または」記号を使用してグループを使用してください。
((?<=blah)(?:[^@]+|\Z))
そこで、キャプチャしないグループ((?:...)
)を使用して、2つのオプションをグループ化しました。グループは、以外の文字と一致するか、 @
文字列\Z
の終わりのアンカーと一致します。