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

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}(台湾)

この記事で欲しい情報が見つからなかった方へ

この記事の更新情報がある場合があります。
この記事は以下の記事とも関連性があると思われます。

vimで正規表現検索する
JavaScriptの正規表現マッチでグループマッチを取り出すには
SQLでWordPressの記事を正規表現検索してMarkDown形式にする – 簡単にWordPressブログの記事リンクを取得する方法
SQlite3では正規表現(REGEXP)が使用できない??
複数ディレクトリで文字列を正規表現で検索する
Railsで正規表現置換ツールを作成する
atom: 正規表現をグラフィカルに表示する


管理人の方針で、既存の記事の編集はせず、新しい情報や大きな既存情報の更新があった場合には、新しい記事として公開することになっています。
当記事で欲しい情報が見つからなかった・解決に至らなかった場合、これらのリンクがお役に立てるかも知れません。

どうやってこの関連記事を生成しているの?
この機能のPHPソースコード(2500行)

コメントを残す

Close Menu