1. ホーム
  2. regex

[解決済み] 正規表現による逆マッチ[重複]の場合

2022-01-29 05:40:37

質問

PCRE を使って、文字列が ではない が見つかりました。

もし私がgrepを使っていたら(使ってはいないが)、-vオプションが欲しいところだ。

より具体的な例です。 正規表現が、もし文字列 foo ない を文字列の中に入れてください。 ですから、次のようにマッチします。 bar はそうですが foobar .

解決方法は?

さて、あなたが思いついた解決策(「test」で始まる文字列に誤ってマッチしてしまう)をもとに、私の正規表現を改良してみました。

^((?!foo).)*$

この正規表現は、fooを含まない文字列のみにマッチします。最初のルックヘッドは'foo'で始まる文字列を拒否し、2番目のルックヘッドはfooが文字列の他の場所にないことを確認します。