2018.2.21

正規表現を使った置換処理でパターンマッチさせた文字列を置換後の文字列に組み込む方法

秀丸の正規表現を使った置換処理についてです。

パターンマッチで記憶させたい文字列を括弧で囲めば、置換後の文字列に利用できることは知っていましたが、そういえば秀丸エディタでやったことがなかったのでメモしておきます。

置換の変換例

変換前の文字列が以下の通りだとして

 1
 1 (1)
 1 (1) (a)
 1 (2)
 1 (2) (a)
 1 (2) (b)
 1 (2) (c)
 1 (3)
 1 (3) (a)
 2
 2 (1)
 2 (1) (z)

このうち (a)~(z) の左括弧「(」のみを削除したいといった場合は以下のようにします。

  • 検索文字列:\(([a-z])\)
  • 置換文字列:\1\)

記憶させて後で参照したい文字列は括弧「()」で囲みます。

置換後の内容は以下のようになります。

 1
 1 (1)
 1 (1) a)
 1 (2)
 1 (2) a)
 1 (2) b)
 1 (2) c)
 1 (3)
 1 (3) a)
 2
 2 (1)
 2 (1) z)

パターンマッチで記憶させた内容を置換後に利用するこの方法を「後方参照」と言うようです。

Apacheのアクセス制御(.htaccessのmod_rewrite)で何度も使いましたが、あちらは「%」や「$」だったので「\」でできることを初めて知りました。秀丸での正規表現を使った置換がさらに捗りそうです。

その他】関連記事