SublimeTextで正規表現の部分置換

2015年02月16日

「aaa」を「bbb」にしたい、みたいな単純な置換じゃなくて「aaa」を「aaaccc、bbbをbbbccc」みたいにマッチする文字列をそのまま使いつつ置換、みたいなことをする方法をちゃんと知らなくていまさら覚えたからメモ。

というかこの機能なんて言う名前なの?秀丸の時はタグ付き置換とかそんな名前じゃかったっけ

最初の状態

111abc
222def
333ghi
444jhk

こんな感じの文字列を

「数値と文字列の間に@を2つ入れたい」

とする。

111abc 2015 02 16 17 30 38

まずは置換ダイアログを出す。Cmd+Opt+f。

マッチする文字列

「数値を任意の数」の場合は [0-9]* だけど、それを () で囲む。

おなじように、

「アルファベットを任意の数」の場合は [a-z]* だけど、それを () で囲む。

111abc 2015 02 16 17 31 11

これでマッチさせる部分はOK

置換後の結果

最初に () でくくった箇所が $1、次に () でくくった箇所が $2、な感じに記載する。

111abc 2015 02 16 17 31 56

完成

111abc 2015 02 16 17 32 10

これでOK。

正規表現便利。

FBでコメント

この記事はコメント、トラックバックおよびピンバックを受け付けていません。