【Obsidian】標準置換で消耗してない?「Regex Replace」で正規表現一括整形を安全に極める実践レシピ
目次
開閉
毎日の業務ログや技術メモ、読んだ記事のクリップなど、情報の集約先としてObsidianを手放せない日々を送っています。会社支給のMacBook Proでも自宅のWindowsノートPCでも、同じVaultを同期して思考のアウトプット基盤としてフル活用しています。
しかし、長年Obsidianを使い倒していると、どうしても定期的に直面する「地味に痛いストレス」がありました。
それは、「ノート内のテキストを一気に整形したいのに、標準の検索・置換(Cmd/Ctrl + H)では正規表現が使えない」という問題です。
Webクリッパーで保存した長文記事の無駄な連続改行を詰めたり、議事録の日付フォーマットを一括で整えたり、見出しの深さを一斉に変えたりしたい場面は日常茶飯事です。
そんなObsidianの弱点をスマートに解決してくれるのが、今回ご紹介するプラグイン「Obsidian Regex Replace」(bongho/obsidian-regex-replace)です。
今回は、私が過去に外部エディタでやらかした痛い失敗談を交えつつ、このプラグインがなぜ手放せないのか、そして明日からすぐ使える実践レシピを詳しくシェアします。
なぜ標準の置換では限界があるのか?
Obsidian標準の置換機能は、指定した文字列と完全に一致するテキストを置き換えることしかできません。
【標準置換で困る典型的なシーン】
・「2026-09-07」を「2026/09/07」に一括変換したい(日付の数字パターンマッチが必要)
・連続する3行以上の空行を、すべて「1行の空行」にまとめたい(\n{3,} のような量指定が必要)
・行末に残った余計な半角・全角スペースだけを一掃したい
・「## 見出し」をすべて「### 見出し」に1段階下げたい
これらはすべて、正規表現 (Regular Expression) とキャプチャグループ ($1, $2) がなければ一撃で処理できません。
過去の苦い失敗:外部エディタで一括置換して「ノート破損」
このプラグインを導入する前、私はどうしていたかというと、ノートを右クリックして「システム標準のエディタで開く」を選び、VS Codeを立ち上げて正規表現置換 を行っていました。
一見するとエンジニアらしい解決策に見えますが、これには2つの大きな問題がありました。
- 思考の分断(コンテキストスイッチの摩擦): ノートを書く・整理するリズムの中で、わざわざ別アプリを立ち上げるだけで集中力が途切れます。
- プレビューなしの暴走(深夜のGit巻き戻し事件): これが最大のトラウマです。ある深夜、数百行におよぶ技術検証メモのMarkdownリンク記法をVS Codeで一括置換した際、正規表現の指定が甘く「欲張りマッチ」を起こしてしまい、コードブロックや別のURLまで巻き込んでノート全体を修復不能にグチャグチャにしてしまいました。結局、Gitのコミット履歴から必死に差分を探して手作業で復旧する羽目になり、深夜に冷や汗を流しました。
正規表現の一括置換は強力ですが、「適用する前に、どこがどう変わるのかがリアルタイムで見えないと怖くて使えない」のが本音です。
プラグイン「Regex Replace」が救世主である理由
GitHubで公開されている bongho/obsidian-regex-replace は、まさにこの悩みをピンポイントで解決してくれます。
graph TD
A["テキスト整形の必要性が発生"] --> B["Cmd/Ctrl + Shift + H で起動"]
B --> C["正規表現パターンと置換文字を入力"]
C --> D{"リアルタイム差分プレビュー"}
D -- "意図しない箇所が巻き込まれている" --> C
D -- "変更内容が正確であることを確認" --> E["Replace All を実行"]
E --> F["Vault内で安全・瞬時に整形完了"]1. 変更前のリアルタイム差分プレビュー(絶大な安心感)
このプラグイン最大の美点は、「置換を実行する前に、一致した箇所と置換後のテキストがビジュアルな差分(ハイライト)でリアルタイムに確認できる」点です。
検索パターンを入力した瞬間、マッチした文字列がハイライトされ、置換後どう変化するかがエディタ上で一目瞭然になります。これにより、「意図せずコードブロックの中身まで巻き込んでしまった」という悲劇を100%防げます。
2. キャプチャグループ($1, $2)の完全サポート
JavaScriptの正規表現エンジンをそのまま利用できるため、グループ化括弧 () で囲んだパーツを $1 や $2 で参照して並べ替える置換が自由自在です。
3. 選択範囲のみの置換(Selection Mode)
ノート全体ではなく、「このテーブルの中だけ」「この章の箇条書きだけ」を対象に置換したいときも、テキストを選択した状態でダイアログを開くだけで、選択範囲内に限定した置換が可能です。
4. 複数ルールを束ねる「パイプライン (Pipeline Rulesets)」
日常的に行う複数の整形処理(例: 空白削除 → 連続改行の圧縮 → 見出し調整)を1つのルールセットとして保存し、ワンクリックで順番に連続実行できます。旧プラグイン obsidian-regex-pipeline の設定インポートにも対応しています。
5. 完全ローカル動作(プライバシーの担保)
すべての処理は端末のローカル環境(Vault内)で完結し、外部サーバーへの通信は一切行われません。仕事の機密情報や個人のプライベートな日記を扱っていても安心して利用できます。
インストールと基本操作
インストール手順
Obsidianのコミュニティプラグインに登録されているため、数クリックで導入できます。 (※Obsidian v1.13.0以降が推奨されています)
- Obsidianの設定(
Cmd/Ctrl + ,)を開く - 左メニューの「コミュニティプラグイン」を選択
- 有効化されていることを確認し、「閲覧」ボタンをクリック
- 検索窓に
Regex Replaceと入力 - 作者が
bonghoのプラグインを選択し、「インストール」→「有効化」をクリック
基本ショートカット
- ダイアログ起動:
Cmd/Ctrl + Shift + H - コマンドパレット経由:
Cmd/Ctrl + P→ 「Open Regex Replace」
実務で即使える!鉄板の正規表現レシピ4選
私が日々のノート整理で頻繁に使っている、実用性の高いレシピをまとめました。ダイアログの「Search」と「Replace」にコピペするだけで即戦力になります。
レシピ1: 3行以上続く無駄な空行を「1行」に圧縮
Webクリップした記事や外部からペーストしたテキストで最も多いのが、スカスカに空いた連続改行です。
- Search:
\n{3,} - Replace:
\n\n - Flags:
g - 解説: 改行コードが3つ以上連続している箇所を検出し、きれいな段落間隔(2つの改行=1行の空行)に揃えます。
レシピ2: 行末に溜まった不要なスペースを一括削除
文章の推敲を繰り返していると、行末に半角スペースやタブが残りがちです。Markdownの余計な改行トリガーになるのを防ぎます。
- Search:
[ \t]+$ - Replace: (空欄)
- Flags:
gm - 解説: 行末(
$)の直前にあるスペースやタブを検出し、綺麗に削除します。行単位でマッチさせるためm(multiline)フラグを必ずONにしてください。
レシピ3: 日付表記(ハイフン区切り → スラッシュ区切り)の統一
外部から取り込んだログやメモで、「2026-09-07」と「2026/09/07」が混在している場合に重宝します。
- Search:
(\d{4})-(\d{2})-(\d{2}) - Replace:
$1/$2/$3 - Flags:
g - 解説: 年(4桁)、月(2桁)、日(2桁)をそれぞれ括弧でキャプチャし、スラッシュで繋ぎ直します。
レシピ4: 見出しレベルを一括で1段階下げる(H2 → H3)
別のノートから文章をブロックごと移植した際、見出しの階層が親ノートと衝突してしまうのを防ぎます。
- Search:
^## - Replace:
### - Flags:
gm - 解説: 行頭(
^)の「##」だけを検出し、「###」に置換します。本文中のハッシュタグ(#todoなど)を誤って巻き込まないのが正規表現の強みです。
プロが考える本音の注意点とトレードオフ
非常に強力なプラグインですが、プロの選定眼として「注意すべき点」や「あえてこのプラグインに任せない領域」も明確にあります。
1. Vault全体の一括置換(Multi-file Replace)はできない
Regex Replaceのスコープは、現在アクティブなノート単体(またはその中の選択範囲)です。
もし「Vault内にある全500個のMarkdownファイルに対して、特定の単語を一斉に正規表現置換したい」という場合は、Obsidianの画面内ではなく、素直に VS Codeのワークスペース全検索置換 や、ターミナルからの sed コマンド を使うのが正解です。
ノート単体の推敲・整形は「Obsidian Regex Replace」、Vault全体の破壊的リファクタリングは「外部CLI」と、役割を割り切るのが健全な運用です。
2. 「元に戻す(Undo)」への過信は禁物
差分プレビューがあるとはいえ、何百箇所もの置換を一発で行った直後に Cmd/Ctrl + Z を押しても、エディタのバッファ状態によっては期待通りに綺麗に戻らないことがあります。
大規模な置換を仕掛ける前は、最低限以下のいずれかを習慣にしておくことを強くおすすめします:
- Obsidian標準のコアプラグイン「ファイル復元 (File Recovery)」が有効になっているか確認する
- GitでVaultを管理している場合は、置換前に一度コミットを切っておく
まとめ:エディタの中で思考を止めずに文章を整える
テキストエディタとしてのObsidianの魅力は、余計なツールを挟まず、ひとつの画面で思考と執筆に没頭できる点にあります。
「ちょっとしたテキスト整形のために、わざわざ別アプリを開く」という日々の数秒のロス。そして「置換をミスしてノートを壊すかもしれない」という無意識のストレス。
Regex Replaceを導入してからは、プレビュー画面で安全性を確認しながら、手元PCのキーバインドだけで瞬時にテキストが片付くようになりました。
まずは明日、Webクリッパーで散らかったノートの「連続空行の圧縮(\n{3,})」あたりから、この快適な置換体験を試してみてはいかがでしょうか。