次: , 前: Unconditional Replace, 上: 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>

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