サクラディタである文字列を含むかつある文字列を含まない行を検索する方法【正規表現】

サクラエディタに限らず、検索するときに「ある文字列は含んでいるがある文字列は含まない」という条件に一致する行を抽出したいときってそれなりにあると思うので、その方法をのせておきます。

「ある文字列は含むがある文字列は含まない」という条件で検索したいときには、正規表現というルールに従って条件を記述します。
(正規表現について簡単に知りたい方は、正規表現の意味やメリットって何かを日常語で説明するを読んでください)

では、どのように書くかというと、次のように書きます。

^(?=.*含みたい文字列)^(?!.*含みたくない文字列).*$

 

例えば、「あああ」を含む、かつ、「かかか」を含まないという行を検索しようとしたら、このように書きます。

^(?=.*あああ)^(?!.*かかか).*$

こうすると、検索結果はこのようになります。

あああ     一致する
かかか     一致しない
あああかかか  一致しない
あああさささ  一致する

正規表現で、ある文字列を含むかつある文字列は含まない行を抽出した結果

^(?=.*含みたい文字列)の部分と^(?!.*含みたくない文字列)の部分は順番はどっちが後先でもいいです。

それと、含む文字列が複数あるときは^(?=含みたい文字列)の部分を増やせばいいですし、含めない文字列が複数あるときは^(?!.*含みたくない文字列)の数を増やせばいいです。

知らなかった方はぜひ試してみてください。

このやり方を知らなかったとき、私は絶望してました。

ふとしたときに「ある文字列は含む」「ある文字列は含まない」の条件と出会ったとき、私は「ある文字列は含む」という条件だけをこねくり回し使うというとてつもなく面倒くさい方法で検索してました。

私はアホ過ぎるので、ネットに書いてある記事を調べて読んでもさっくりと検索方法がわからなくて、力技での検索という恐ろしいことをしてました。

通常の検索でも面倒でしたし、grep検索のときは……ただ、絶望でした(笑)

この記事が、サクラディタなどのエディタを使い始めたばかりだし、正規表現もよくわからないといった人のお役に立てれば幸いです。

タイトルとURLをコピーしました