秀丸エディタの不一致正規表現検索

一般的な正規表現では「ある特定の文字列を含まない文字列にマッチする正規表現」というのが難しく。 正規表現メモ ある文字列を含まない正規表現のようなのを使うと、その正規表現が作れます。 hoge に不一致の文字列は以下のような、びっくりするほど複雑な正規表現になってしまいます。

(((((([^h]*)*(h+[^o][^h]*)*)*)*(h+[^g][^h]*)*)*)*(h+[^e][^h]*)*)*

一方、秀丸エディタの正規表現( HMJRE.DLL )は、不一致の文字列のための演算子が用意されています。 正規表現 hoge にマッチしない文字列は次のようにかけます。

(?!hoge).*

「後ろに hoge が続かない文字」の連続を意味します。すごくスマート。

他の正規表現(たとえば Perl とか)にも同じような機能として否定先読みっていうのがあったんですね。ううむ、まだまだ正規表現に関して勉強が足りてないなぁ。

インフォメーション

公開日時
2007年9月8日 午前11時1分36秒
最終更新日時
2007年9月23日 午後0時44分58秒
カテゴリ
秀丸エディタ