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

2-27 指定複数文字列のみでない行を検索(共通文字なし)

正規表現パズル

行ごとで、
文字列ABCと文字列DEFのみ、でない行を検索する。
ちなみに、文字列ABCと文字列DEFに共通文字はないです。

検索前


検索後


対象データ

ABC1XABC2DEF
ABCDEFABC
DEFDEF
ABCABCDEFABC
ABCABC123ABC
DEF
12ABC34
ABC
ABCAB
ABCAC
AABC
ABCABC


正規表現

^(?!(ABC|DEF)*$).*$


解説

行頭から、文字列ABCまたは文字列DEFをマッチさせていっても、
行末にたどりつけないことを条件にしています。

文字列123も文字列XYZも含まない行を検索する正規表現
^(?!(.*123|.*XYZ)).*$  はドモルガンの法則を使って、
^(?!.*123)(?!.*XYZ).*$ に変形できますが、

^(?!(ABC|DEF)*$)
は、ドモルガンの法則を使った変形はできないようです。