Markdownの太字を置換

sedの正規表現で置換

アスタリスクで囲まれた文字列を <strong> タグに置換するsedコマンドは以下のようになります。

sed 's/\*\*\([^*]*\)\*\*/<strong>\1<\/strong>/g'

解説:

  • \*\* – 始まりの ** をエスケープ
  • \([^*]*\)** で囲まれた内容をキャプチャ
  • [^*]** 以外の任意の文字にマッチ
  • \*\* – 終わりの ** をエスケープ
  • <strong>\1<\/strong> – キャプチャした内容を <strong> タグで囲んで置換
  • g フラグ – 行内のすべての該当部分を置換

使用例:

echo "**資産**" | sed 's/\*\*\([^*]*\)\*\*/<strong>\1<\/strong>/g'

出力:

<strong>資産</strong>

注意点:

  • この正規表現は同じ行内で完結する **...** にのみ対応
  • 改行を跨ぐ場合は別の処理が必要
  • 文中に単独の * が含まれている場合は誤動作する可能性があります

秀丸の正規表現で置換

秀丸エディタの正規表現では、以下のように書き直せます。

検索文字列:

\*\*(.*?)\*\*

置換文字列:

<strong>$1</strong>

秀丸正規表現の特徴:

  1. キャプチャグループ( ) で囲む(sedの \( \) とは異なる)
  2. 後方参照$1 を使用(sedの \1 とは異なる)
  3. 最短マッチ.*? で最短一致(? が最短マッチを意味する)
  4. エスケープ*\* でエスケープ

設定の確認:

秀丸で正規表現置換を使用する場合:

  • 「検索」メニュー → 「置換」を選択
  • 「正規表現」にチェックを入れる
  • 上記の検索文字列と置換文字列を入力

使用例:

入力:

**資産**が重要です。**リスク**も忘れずに。

置換後:

<strong>資産</strong>が重要です。<strong>リスク</strong>も忘れずに。

注意点:

  • 秀丸のバージョンによって正規表現の仕様が異なる場合があります
  • 最短マッチ .*? が使用できない場合は、[^*]* を使用:
  \*\*([^*]*)\*\*

コメント

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