0

フリースという単語の後に (すぐに、またはさらに先に)雪という単語が続かない場合に一致させたい

入力データ:

Mary had a little lamb, its fleece was white as snow balls

次の正規表現はすべて一致するため機能しません。私は過去にこれを達成したと確信していますが、どこを見つけることができません。

/(fleece).*(?!snow)/
/(fleece)[\w ]+(?!snow)/

参考までに、この正規表現はより大きな正規表現の一部になり、代替セクションになるため、正規表現全体を単純に否定することはできません-たとえば

/something(?!somethingelse)|fleece.*(?!snow)/
4

1 に答える 1

3

もうすぐです。.*否定的な先読みを入れます。以下の正規表現は、文字列の後に0 回以上の char とstringfleeceが続かない場合にのみ、文字列をキャプチャします。.*?snow

(fleece)(?!.*?snow)

また

必要に応じて単語境界を使用します\b

\b(fleece)\b(?!.*?\bsnow\b)

デモ

于 2015-01-27T08:20:53.243 に答える