文字列abcの数が3個でない行を検索する 検索前 検索後
XXXXX abcXX abcXabc abcabcXXXabcX abcabcXXXabcXabc abcabcabc
^(?!((((?!abc).)*abc((?!abc).)*){3}$)).*$ 別解1 ^(?!((((?!abc).)*abc){3}((?!abc).)*$)).*$ 別解2 ^(?!(?=(.*abc){3})(?!(.*abc){4})).*$
否定先読みを、二重で使ってます。 別解2では、以下の連立不等式を使ってます。 Xは3以上の自然数である。かつ、Xは4以上の自然数ではない。 ⇔ X=3 両方を否定して、 (Xは3以上の自然数である。かつ、Xは4以上の自然数ではない。) ということはない ⇔ X!=3 P ⇔ Q が成立するなら、両方を否定した下記の命題も成立するのです。 Not(P) ⇔ Not(Q)