任意の文字列を含まない正規表現

こんな便利なページを見つけました。

http://www.kt.rim.or.jp/~kbk/regex/regex.html#NOTINCLUDED

ここのJavaScriptが作ってくれます。

例えば"Makefile"という文字列を含まない正規表現は、、、

(((((((((((((([^M]*)*(M+[^a][^M]*)*)*)*(M+[^k][^M]*)*)*)*(M+[^e][^M]*)*)*)*(M+[^f][^M]*)*)*)*(M+[^i][^M]*)*)*)*(M+[^l][^M]*)*)*)*(M+[^e][^M]*)*)*

うゎー自分で作ったら超メンドクサ。

  1. とりあえずAだけでなくBも含んでしまっていいから取り合えずGREP(この結果をCとする)
  2. CからBを含むテキストをGREPする(この結果をDとする)
  3. DとCでdiffを取る

ていう感じなのかね、普通は・・・。