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

4-31 行末から左に数えて3番目のabcを検索

正規表現パズル

行末から左に数えて3番目のabcを検索する。

検索前


検索後


対象データ

abc11abc22abc33abc44abc55abc66
abcabcabc
abc11abc
abcabc22abc
abXabcbcabcabc
abcabcabcabcabc


正規表現

abc(?=(((?!abc).)*abc){2}((?!abc).)*$)

別解

abc(?=(.*abc){2})(?!(.*abc){3})


解説

別解では、数学の同値命題(連立不等式)
Xは2以上の自然数である。かつ、Xは3以上の自然数でない。 ⇔ X=2
を使ってます。

4-4 指定文字がn回以上m回以下
4-5 複数文字がn回以上m回以下
4-8 指定文字列がn回以上m回以下
4-9 複数文字列がn回以上m回以下

可変の戻り読みが使えるなら、
このような数学の同値命題(連立不等式)の使用も可能です。
2個目のSTARTからENDまでを検索