カンマの数が3個でない行を検索する。 検索前 検索後
1234 1,234 1,2,34 1,2,3,4 1,2,3,4, ,,,123 ,1,,23
^(?!([^,]*,[^,]*){3}$).*$ 別解1 ^(?!([^,]*,){3}[^,]*$).*$ 別解2 ^(?!(?=(.*,){3})(?!(.*,){4})).*$
量指定子でカンマの数を指定して、 否定先読みを使ってます。 別解2では、以下の連立不等式を使ってます。 Xは3以上の自然数である。かつ、Xは4以上の自然数ではない。 ⇔ X=3 両方を否定して、 (Xは3以上の自然数である。かつ、Xは4以上の自然数ではない。) ということはない ⇔ X!=3 P ⇔ Q が成立するなら、両方を否定した下記の命題も成立するのです。 Not(P) ⇔ Not(Q)