サクラエディタの検索・置換機能では正規表現を使用することができるので、わりと複雑な条件で検索できる。
特に、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
これで、置換したい箇所の前後がそのまま残った状態で置換できる。
最後に
今回はサクラエディタで試したが、正規表現なら基本的に他でも同じだ。
正規表現を使いこなせれば、使い方次第でいろいろ作業が捗るなぁ。
コメント