PCREでは、文字列がnotが見つかった場合にのみ一致する式をどのように構築できますか。
Grepを使用している場合(そうではありません)、-vオプションが必要です。
より具体的な例:文字列foo
が文字列内でnotである場合、正規表現に一致させたい。したがって、bar
と一致しますが、foobar
とは一致しません。
さて、あなたが思いついた解決策に基づいて正規表現を改良しました(「テスト」で始まる文字列と誤って一致します)。
^((?!foo).)*$
この正規表現は、fooを含まない文字列のみに一致します。最初のlookaheadは、 'foo'で始まる文字列を拒否し、2番目のlookaheadは、fooが文字列のどこにも見つからないことを確認します。
ダニエルの答えに基づいて、私はうまくいくものがあると思う:
^(.(?!test))*$
キーは、文字列内のすべての文字で否定的なアサーションを作成する必要があるということです
私はすでに誰かのためにこの質問に答えました、これらのリンクを見てください:
実際、ほとんど重複しています。あなたが探している正規表現は
(?!foo)。*