機能 ショートカットキー
リファレンス(参考URL)一覧へ移動 R
記事URLをMarkDownとしてコピー Ctrl+M
前のコードタグへ移動 Ctrl+←
次のコードタグへ移動 Ctrl+→
ヘルプを表示・非表示 H
Tips
- ショートカットキーは記事上で有効です。ヘッダー/フッター付近では機能しないことがあります。
- コードタグ移動機能がうまく動かないときは、Shift+F5でページを更新してみてください。
- このウィンドウを閉じるには、Hキーをもう一度押してください

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

AD

プログラミング

台湾に行ってみようかなぁと思って、前にメモした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}(台湾)
SPONSOR

オンラインブートキャンプ全12コースの「ウケ放題」 AD

コメントを残す

Close Menu