トップページに戻る    次の豆知識へ    前の豆知識へ

否定先読みと任意の組み合わせでの盲点

正規表現パズル

文字列abcが1回しか出現しない行を検索する。

検索前


正しい正規表現の
^((?!abc).)*abc((?!abc).)*$
で検索後


正しくない正規表現の
^(.(?!abc))*abc(.(?!abc))*$
で検索後


対象データ

XXabcdefgX
XabcdefgX
abcdefgX
XXXXXXXXXX
XabXcXXXXX


解説

次にabcが続かない位置からの1文字か、
1文字の後にabcが続かない位置があるのか
を明確に区別して正規表現を作成する必要があります。

否定先読みと任意の組み合わせでの盲点と言えるでしょう。