(?!expression) 後方不一致指定(Ver1.90対応版)
目次Index -
正規表現Regular expression
後方一致指定とは反対に、後方部分が特定のパターンにヒットしないことを必要とします。
例えば「abc」の後ろが「xyz」でない場合に「abc」のみにヒットさせたいようなケースで使います。
上記例では、
abc(?!xyz)
と指定します。
後方不一致指定の後ろにさらにパターンを指定すると、両方の条件に一致するという意味になります。例えば、
abc(?![123])[234]
というパターンの場合、abcの後は1,2,3以外の全ての文字で、かつ2,3,4ということになり、結果的にabc4という文字列だけがマッチします。
タグ付き正規表現も応用して、例えば、
([a-z])((?!\1)[a-z])\2
というパターンを使うことにより、「1文字目と2文字目は一致しなけども2文字目と3文字が一致する3文字の英単語」を検索することが出来ます。