Home > Archives > 18 May 2020

18 May 2020

Emacs の正規表現置換でキャプチャした内容に関数を適用して置き換えたい

という需要があったのでぐぐってみたら,Emacs: regular expression replacing to change case とか Shiny and New: Emacs 22 で答えが見つかった.

置き換え文字中に \,(hoge \1) とかあると hoge を1つ目のキャプチャ(\1)に適用した結果に置き換わるらしい.より正確には,\, で後続のS式を評価できるらしい.なので \,(substitute ?_ ? (downcase \1)) とかすると,キャプチャした内容を小文字にしたうえで空白をアンダースコアで置き換えたものにできる.

超便利.だいぶ大昔からある機能のようだけど全然知らんかったのは残念.他にも連番を生成できる \# とかもあったりしてちゃんと勉強しとかんと時間を損するね.

Home > Archives > 18 May 2020

Search
Feeds

Page Top