トップページに戻る
次の正規表現パズルへ
前の正規表現パズルへ
4-5 複数文字がn回以上m回以下
正規表現パズル
aの出現回数が3以上5以下、かつ、
bの出現回数が4以上6以下の行を検索する。
検索前
検索後
対象データ
aaa
aaaa
aaaaa
ababa
ababab
abcdba
abcdabcdabcd
aaabbbab
aaabbbb
aaabbbbaaaaa
正規表現
^(?=[^a]*(a[^a]*){3,5}[^a]*$)(?=[^b]*(b[^b]*){4,6}[^b]*$).*$
別解1
^(?=([^a]*a){3,5}[^a]*$)(?=([^b]*b){4,6}[^b]*$).*$
別解2
^(?=(.*a){3})(?!(.*a){6})(?=(.*b){4})(?!(.*b){7}).*$
解説
肯定先読みの論理積を求めてます。
数学の同値命題(連立不等式)
Xは3以上の自然数である。かつ、Xは6以上の自然数でない。 ⇔ X=3,4,5のいずれかである。
Yは4以上の自然数である。かつ、Yは7以上の自然数でない。 ⇔ Y=4,5,6のいずれかである。
を使ってもいいです。