2012-05-12 5 views
1

私はこの負の先読みを私のために働かせるために何時間も努力しています。先行グループに負の先読みを適用する

BBB/CCC 
AAA/DDD/CCC 

私のパターンは、まだ「BBB」にマッチなぜ誰かが指摘でした:それはそれは「/ CCC」

http://refiddle.com/1xb

/(^[\w]+)(?!./CCC$)/mg 

テスト文字列が続いていない場合にのみ、私の文字列と一致する必要があります最初の行の?

答えて

2

まず、正規表現の中で/をエスケープする必要があります。

あなたもすべきではない点があり、ワード境界不足している:

/(^\w+)\b(?!\/CCC$)/mg 

refiddle

+0

は/をエスケープする必要があることを知りませんでした。私が試した正規表現エディタのどれもエラーとしてそれを示していませんでした。 「/ CCC」に少なくとも1つの「任意の文字」が先行することを確実にすると思ったので、私は単一のドットを使用しました。あなたの最初のバージョンは私にとっては機能しません。どうもありがとう!! –

+0

@ user640916では、スラッシュは正規表現の区切り文字として使用されているため特別なものに過ぎません。 PerlやPHPのようないくつかの正規表現のフレーバーは、区切り文字として使用するために異なる文字を選択することを可能にします。そして、他の多くのフレーバーはデリミタを全く必要としません。ほとんどのregex *エディタもデリミタを必要としないので、スラッシュをそのまま別の文字として扱います。 –

関連する問題