ある文字列を囲んでいる記号を別の記号に置換する
2011/02/01
ある文字列を囲んでいる記号(括弧やダブルクオーテーション)を別の記号に置換する
vim(というか正規表現)では次のように打つ.:1467,1480s/"\(.*\)"/{\1}/gこの例では,編集しているテキストファイルの1467から1480行の範囲にある,「""」で囲まれた文字列を「{}」(本当は半角の括弧)で囲むように置換している.
正規表現では,「\(」と「\)」に囲まれた文字列は,再利用することが出来る.
再利用する場合は,「\n」(nは1以上の自然数で,「\(」と「\)」で囲んだ順番をさす)を使う.
ある記号に囲まれた文字列に対して,その囲んでいる記号だけを変えたいことは結構あるので,これを覚えておくとルーチンワークを軽減できる.
応用例
LuaLaTeX等において,太字修飾していた文字列を,さらにサンセリフフォントに指定する例.後付けでこのような編集をすることは結構ある気がする.:237,287s/\\textbf{\(.*\)}/\\textsf{\\textbf{\1}}/g