MW211 EXIT

devlog
正規表現/文字列の否定(2)行単位での比較
2014年02月02日
文字列の否定は難しいと述べたが、まずは行にその文字列が含まれるかを
判定する正規表現はわりと簡単にできる。
「^(?!.*文字列).*$」でOK。

先読み((?!)など)の場合、文字列が使えるので、これを利用する。

整理すると以下の通り。

「a」を含まない行。
┌──────────────────────────────────────┐
│^[^a]*$                                                                     │
└──────────────────────────────────────┘

「a」も「b」も含まない行。
┌──────────────────────────────────────┐
│^[^ab]*$                                                                    │
├──────────────────────────────────────┤
│^[^(a|b)]*$                                                                 │
│^[^(ab)]*$                                                                  │
└──────────────────────────────────────┘

「ab」を含まない行。
┌──────────────────────────────────────┐
│^(?!.*ab).*$                                                                │
└──────────────────────────────────────┘
分類:正規表現