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

2-32 共通文字に注目した正規表現の変形

正規表現パズル

行頭に文字列ABCがあり、かつ、
行末に文字列XYZがあり、かつ、
文字列WAWと文字列WAAW
が存在しない行を検索する。

検索前


検索後


対象データ

ABCWAWXYZ
ABCWAAWXYZ
ABCWAAAWXYZ
WAWXYZ
WAAWXYZ
WAAAWXYZ
ABCWAW
ABCWAAW
ABCWAAAW
ABCWWXY
ABCWWXYXWAAAWXYZ
ABCWWXYZ
ABCXYZ


正規表現

^ABC((?!WAW|WAAW).)*XYZ$

別解

^ABC((?!WAA?W).)*XYZ$

別解

^ABC((?!WA{1,2}W).)*XYZ$


解説

別解では、
文字列WAWと文字列WAAW
の共通文字Aに注目して、正規表現を変形しています。