トップページに戻る
次の正規表現パズルへ
前の正規表現パズルへ
4-9 複数文字列がn回以上m回以下
正規表現パズル
文字列abcの出現回数が3以上5以下、かつ、
文字列defの出現回数が4以上6以下の行を検索する。
検索前
検索後
対象データ
abcdef
abcXdefXabc
XabcXabcXabcdef
abcabcabcabcdefdefdefdef
abcXabcXabcXabcXdefXdefXdefdef
abcdefabcabcabcdefabcdefdef
abcdefabcabcabcdefabcdefXdefX
正規表現
^(?=((?!abc).)*(abc((?!abc).)*){3,5}((?!abc).)*$)
(?=((?!def).)*(def((?!def).)*){4,6}((?!def).)*$).*$
別解1
^(?=(((?!abc).)*abc){3,5}((?!abc).)*$)
(?=(((?!def).)*def){4,6}((?!def).)*$).*$
別解2
^(?=(.*abc){3})(?!(.*abc){6})(?=(.*def){4})(?!(.*def){7}).*$
解説
否定先読みと肯定先読みを組み合わせてます。
別解2では、以下の連立不等式を使ってます。
Xは3以上の自然数である。かつ、Xは6以上の自然数ではない。 ⇔ X=3,4,5
Yは4以上の自然数である。かつ、Yは7以上の自然数ではない。 ⇔ X=4,5,6