俺の開発研究所

Ruby on Rails、Linux、Windowsを中心にIT技術系の備忘録とか。よく忘れるので。

*

サクラエディタで正規表現にマッチした文字列を引用して置換する方法

      2018/09/21

サクラエディタの検索・置換機能では正規表現を使用することができるので、わりと複雑な条件で検索できる。

特に、Grep置換機能がかなり便利なので、データ・ソースファイルの一括修正をするときはよく使用している。

その際に、検索条件の正規表現でマッチした文字列を置換後の文字列に使用したい場合がよくある。

その方法を紹介します。

なお、今回のバージョンは以下です。

  • Windows 10 Pro(64bit)
  • サクラエディタ 2.2.0.1

スポンサード リンク

正規表現で文字列を変数に格納・参照

まず、サクラエディタで正規表現を使用するには、検索や置換(Grep検索・Grep置換も同様)のダイアログで「正規表現」にチェックしておく必要がある。

サクラエディタ 正規表現

そして、正規表現にマッチした文字列を引用する方法は、カッコ()と$1を使用する。

正規表現の検索条件でカッコ()を使用するとその部分が変数に格納され、置換後の文字列で$1とすると変数に格納された値を参照できる。
()が複数ある場合は、前から順に$1、$2、$3、…で参照できる。

以下で、Grep置換の場合の適当な例を挙げてみる。

【例】HTMLファイルのtitleタグ内の特定の文字列を置換する

複数のHTMLファイルに対して、titleタグ内の文字列「タイトル」を「たいとる」に置換してみる。

以下のように、「.*」で改行以外の1文字が0回以上繰り返しにヒットするが、その部分をカッコ()でくくり変数に入れ、$1、$2で参照している。

これで、置換したい箇所の前後がそのまま残った状態で置換できる。

  • 置換前: <title>(.*)タイトル(.*)</title>
  • 置換後: <title>$1たいとる$2</title>
  • ファイル:*.html

正規表現を使いこなせれば、使い方次第でいろいろ作業が捗るなぁ。

以上。

 - ソフトウェア