Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

今さら正規表現(否定編)

正規表現で(~を含まない行)を見つけたい

CSVデータ等、複数行のテキストデータに対して、フィルタをかけたい事が多々あります。
エディタを利用して、文字列の並び条件にマッチしている行だけを残したい場合、その条件にマッチしない行を削除すれば良い事になります。

■ 〜を含まない行

「abc」という文字列を含まない行にマッチする。

^(?!.*abc).*$

■ 〜を含まない行(複数指定)

「abc」または「efg」という文字列を含まない行にマッチする。

^(?!.*(abc|efg)).*$

※abc|def|ghi|jkl など、つなげれば複数条件も可能

■ 〜を含むが、〜を含まない行

「abc」を含み、「def」を含まない行にマッチする。

^(?=.*abc)(?!.*def).*$

■ 〜で終わらない行

「abc」という文字列で終わらない行にマッチする。

^(?!.*abc$).*$

■ 〜で始まらない行

「abc」という文字列から始まらない行にマッチする。

^(?!abc).*$