この関数は、最後の探索で一致したテキストをreplacementで置換します。
この関数は、最後の探索で一致したバッファ内(あるいは文字列string)の テキストを置換する。 当該テキストをreplacementで置き換える。
バッファで最後に探索を行った場合には、 stringに
nil
を指定すること。 そうすると、replace-match
はバッファを編集することで置換を行い、 置換したテキストの末尾にポイントを置きt
を返す。文字列で探索した場合には、stringに同じ文字列を渡すこと。 そうすると、
replace-match
は新たな文字列を構築することで 置換を行い、新たな文字列を返す。fixedcaseが
nil
以外であると、 置換テキストの大文字小文字は変更しない。 さもなければ、置換テキストの大文字小文字は、 対象テキストの大文字小文字に応じて変換される。 元テキストがすべて大文字であると、置換テキストも大文字に変換される。 元テキストの最初の単語が大文字で始まっていると、 置換テキストの最初の単語も大文字で始める。 元テキストが1単語のみであり、しかも、その単語が大文字1文字であると、replace-match
はすべてが大文字ではなく大文字で始まるとみなす。
case-replace
がnil
であると、 fixed-caseの値に関わらず、大文字小文字変換を行わない。 see Searching and Case。literalが
nil
以外であると、 必要に応じて大文字小文字変換は行うものの replacementをそのまま挿入する。 それがnil
(デフォルト)であると、 文字‘\’を特別に扱う。 replacementに‘\’が現れるときには、 つぎの列のいずれかであること。
- ‘\&’
- ‘\&’は置換対象のテキスト全体を表す。
- ‘\n’
- nを数字文字とすると‘\n’は、 もとの正規表現内のn番目の部分式に一致したテキストを表す。 部分式とは、‘\(...\)’で囲んでグループ化した式である。
- ‘\\’
- ‘\\’は置換テキスト内で1つの‘\’を表す。
subexpが
nil
以外であると、 一致箇所全体ではなく正規表現のsubexp番目の部分式に 一致した箇所のみを置換することを指示する。 たとえば、‘foo \(ba*r\)’に一致させたあとで、 subexpに1を指定してreplace-match
を呼び出すと、 ‘\(ba*r\)’に一致したテキストのみを置換することを意味する。