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

5-14 同じ文字で、文字が挟まれてない行を検索

正規表現パズル

同じ文字で、文字が挟まれてない行を検索する。

例
AAA   は、2文字目のAが、Aに挟まれているので不適
AAB   は、検索対象
AAC   は、検索対象
ABA   は、2文字目のBが、Aに挟まれているので不適
ABB   は、検索対象
ABC   は、検索対象
ACA   は、2文字目のCが、Aに挟まれているので不適
ACB   は、検索対象
ACC   は、検索対象
BAB   は、2文字目のAが、Bに挟まれているので不適
BBB   は、2文字目のBが、Bに挟まれているので不適
BCB   は、2文字目のCが、Bに挟まれているので不適
BCC   は、検索対象
ABCD  は、検索対象
ABAC  は、2文字目のBが、Aに挟まれているので不適
ABCC  は、検索対象
ABCB  は、3文字目のCが、Bに挟まれているので不適

検索前


検索後


対象データ

AAA
AAB
AAC
ABA
ABB
ABC
ACA
ACB
ACC
BAB
BBB
BCB
BCC
ABCD
ABAC
ABCC
ABCB


正規表現

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

別解1

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

別解2

^(?!.*(.).+\1).*$


解説

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