正規表現で検索・置換
Problem 11のコードを書くときに問題文から400個の数字をコード上に写すときに、役に立ったのでメモ。
使い方の流れとしては、
を順番に行う。
実際にやったこと
二桁で記述された数値が400個。その中で、10の位が0のものはオクテットと判定されてしまいコンパイル時に不都合があったので10の位を削ることに。
いきなり置換を実行すると間違えてしまったときの手戻りが面倒なので、まずは手順1のとおりisearch-forward-regexpでテストする。この関数を使うと、正規表現を記述しながらマッチした文字列をハイライトしてくれるのでわかりやすい。
その結果、以下の表現を得ました。
0\([0-9]\)
1の位をカッコでくくっているのは、ここの部分を後方参照して残したかったから。
で、手順2の関数を使って実際に置換を行います。以下の順に入力。
M-x replace-regexp 0\([0-9]\) \1
これで、「04」のような表記は「 4」に置換されます。