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

5-15 2文字以上の文字列で、文字が挟まれてない行を検索

正規表現パズル

2文字以上の文字列で、文字が挟まれてない行を検索する。

例
AAA        は、検索対象
AAB        は、検索対象
AAC        は、検索対象
ABA        は、検索対象
ABCXYZABC  は、XYZが、ABCに挟まれているので不適
ABCXABC    は、Xが、ABCに挟まれているので不適
ABCABC     は、Cが、ABに挟まれているので不適
ABCDAB     は、CDが、ABに挟まれているので不適
ABCDEFG    は、検索対象
ABCDEAB    は、CDEが、ABに挟まれているので不適
AA         は、検索対象
ABCDE      は、検索対象
ABAB       は、検索対象
ABABA      は、検索対象

検索前


検索後


対象データ

AAA
AAB
AAC
ABA
ABCXYZABC
ABCXABC
ABCABC
ABCDAB
ABCDEFG
ABCDEAB
AA
ABCDE
ABAB
ABABA


正規表現

^(?:(?!(.{2}).+\1).)*$

別解

^(?!.*(.{2}).+\1).*$


解説

キャプチャしない括弧は、このような時に使うと便利です。
別解の正規表現でもいいでしょう。

   2文字以上の文字列で、文字が挟まれている
⇔ 2文字の文字列で、文字が挟まれている
を使ってます。