(^abc)
「後ろに存在してはならない文字列」を指定し、否定先読みによって存在しない事をチェックします。
先読みした文字列は消費しないので、NOT関数の後でもう一度文字列をテストすることが出来ます。
例えば、<(^a\s)
は「a要素ではない要素」にマッチします。
a要素ではない要素にマッチさせたいだけなら、<[^a][^ ]
のように文字クラスを使っても実現できます。
が、文字クラスで1文字ずつ指定する記述は見辛いですし、何より文字列を消費してしまいます。
NOT関数は文字列を消費しないので、<(^a\s)area\s
のようにして、要素名のマッチングを後ろに続けることが出来ます。
(^abc)?
(^abc|xyz)?
(^(^(^abc)?))
(^?)
(^?)
は空文字とは違います。
URL欄で「文字列の終わり」にマッチさせたい時によく使われます。
# ToDo:
NOT関数をフィルタの最後に置き、Limit がNOT関数のチェックしているポイントにある時、最後までチェックしていないにも関わらず、NOT関数は真を返す