AtomでAND検索する正規表現パターンを考えた

    >

台湾に行ってみようかなぁと思って、前にメモしたSIMに関するメモを見つけようとしたけど、
よくよく考えるとAtomってand検索できないじゃん、ってことに気づいた。

つまり、Evernoteみたいな一般的なAND検索ができないってことですね。
これをどうやるか、というのが今回の問題。

例として、”台湾 sim”という検索クエリでAND検索をしたい、とする。

(sim|台湾)(.*)(sim|台湾)

まずこれを試した。
これだと、


# 台湾 sim カード # sim 台湾 # 台湾 台湾

“台湾 台湾”っていう行も引っかかってしまう。

(台湾)(.*)(sim)|(sim)(.*)(台湾)

こうするしかないですね。
検索キーワードが3つ、4になると4x3x2x1…というように正規表現が伸びていくことになりますが。

これで、行の検索はできるようになりました。
…これぐらいならパッケージとか探せばありそうですがね。

ただせっかく正規表現と組み合わせて高度な検索が可能なわけなので、
もう少し捻ってみます。

3行の中でAND検索する

任意の3行の中の文字列を検索します。

(台湾)(.*\n?){1,2}(sim)|(sim)(.*\n?){1,2}(台湾)

おk.

マークダウンh1の範囲を検索したかった

“#”で区切られた範囲の文字列から検索することで、1つのファイル、Evernote的に言えば、1つのノートを検索するように検索することができるのでは、と
思いましたが、頑張ったけどできませんでした。

^#(.*\n?)+?^#

検索結果部分が被らない仕様なようで、

(^#(.*\n?)+?^#)+?
(^#(.*\n?)+?^#)?

効果なし

^#(.*\n?)+?^(?!^#)

否定使えないみたいです。

まとめ

これ使っておけばいいかと思います。

(台湾)(.*\n?){1,2}(sim)|(sim)(.*\n?){1,2}(台湾)

お困りですか?この記事で紹介していることをマンツーマンで指導、解説、代行します。まずはお気軽にお問い合わせください。


関連するかもしれない記事

Perlで改行あり複数行(multiline)を正規表現置換する
jQuery x list.jsで正規表現検索できて並び替えもできるHTMLテーブルを作る
vimで正規表現検索する
JavaScriptの正規表現マッチでグループマッチを取り出すには
SQLでWordPressの記事を正規表現検索してMarkDown形式にする – 簡単にWordPressブログの記事リンクを取得する方法
SQlite3では正規表現(REGEXP)が使用できない??
複数ディレクトリで文字列を正規表現で検索する


Close Menu