トップページに戻る    次の正規表現パズルへ    前の正規表現パズルへ

3-18 指定文字列がn回

正規表現パズル

文字列abcの数が3個の行を検索する。

検索前


検索後


対象データ

XXXXX
abcXX
abcXabc
abcabcXXXabcX
abcabcXXXabcXabc
abcabcabc


正規表現

^(((?!abc).)*abc((?!abc).)*){3}$

別解1

^(((?!abc).)*abc){3}((?!abc).)*$

別解2

^(?=(.*abc){3})(?!(.*abc){4}).*$


解説

否定先読みで、
文字列abcが、次に出現するかをチェックしてます。

別解2では、以下の連立不等式を使ってます。
Xは3以上の自然数である。かつ、Xは4以上の自然数ではない。 ⇔ X=3

2-23 文字列が2個以上ある行を検索