Next: , Previous: Unconditional Replace, Up: Replace


10.7.2 正規表現による置換

M-x replace-stringコマンドは、 1つの文字列に正確に一致するものだけを置き換えます。 これに類似したコマンドM-x replace-regexpは、 指定したパターンに一致する任意のものを置き換えます。

replace-regexpでは、 newstringが定数である必要はありません。 regexpに一致したものの全体あるいはその一部を参照できます。 newstringの中の‘\&’は、 置換対象の文字列全体(つまり、regexpに一致したものの全体)を 表します。 newstringの中の‘\d’(dは数字)は、 regexpの中のd番目の括弧のグループ化部分に 一致した部分を表します。 置き換えるテキスト内に‘\’を含めるには、 ‘\\’と入力する必要があります。

     M-x replace-regexp <RET> c[ad]+r <RET> \&-safe <RET>

たとえばこの例は、‘cadr’を‘cadr-safe’で、 ‘cddr’を‘cddr-safe’で置換します。

     M-x replace-regexp <RET> \(c[ad]+r\)-safe <RET> \1 <RET>

この例は、逆の置換を行います。