(Regexp Replace): Further update text for new replacement operators.

This commit is contained in:
Richard M. Stallman 2004-07-24 21:44:45 +00:00
parent c2fb587857
commit 074f1b8b8f

View file

@ -1038,20 +1038,21 @@ text to replace with, you must enter @samp{\\}.
You can also use Lisp expressions to calculate parts of the
replacement string. To do this, write @samp{\,} followed by the
expression in the replacement string. Each replacement calculates the
value of the expression, which ought to be a string, and uses it in
value of the expression and converts it to text without quoting (if
it's a string, this means using the string's contents), and uses it in
the replacement string in place of the expression itself. If the
expression is a symbol, one space in the replacement string after the
symbol name counts as part of the symbol name, so the value replaces
them both.
symbol name goes with the symbol name, so the value replaces them
both.
Inside such an expression, @samp{\&} and @samp{\@var{n}} used as
subexpressions refer respectively to the entire match as a string, and
to a submatch as a string. @var{n} may exceed 9 here, and the value
of @samp{\@var{n}} is @code{nil} if subexpression @var{n} did not
match. You can also use @samp{\#&} and @samp{\#@var{n}} refer to
those matches converted to numbers (this is valid when the match or
submatch has the form of a number). @samp{\#} stands for the number
of already-completed replacements.
Inside such an expression, you can use some special sequences.
@samp{\&} and @samp{\@var{n}} refer here, as usual, to the entire
match as a string, and to a submatch as a string. @var{n} may be
multiple digits, and the value of @samp{\@var{n}} is @code{nil} if
subexpression @var{n} did not match. You can also use @samp{\#&} and
@samp{\#@var{n}} to refer to those matches as numbers (this is valid
when the match or submatch has the form of a numeral). @samp{\#} here
too stands for the number of already-completed replacements.
Repeating our example to exchange @samp{x} and @samp{y}, we can thus
do it also this way:
@ -1061,9 +1062,9 @@ M-x replace-regexp @key{RET} \(x\)\|y @key{RET}
\,(if \1 "y" "x") @key{RET}
@end example
The @code{format} function (@pxref{Formatting Strings,,,elisp, GNU
Emacs Lisp Reference Manual}) comes in handy for computing replacement
strings for @samp{\,}. For example, to add consecutively numbered
For computing replacement strings for @samp{\,}, the @code{format}
function is often useful (@pxref{Formatting Strings,,,elisp, GNU Emacs
Lisp Reference Manual}). For example, to add consecutively numbered
strings like @samp{ABC00042} to columns 73 @w{to 80} (unless they are
already occupied), you can use
@ -1074,8 +1075,8 @@ M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET}
If you want to enter part of the replacement string by hand each
time, use @samp{\?} in the replacement string. Each replacement will
enter a recursive edit, with point at the position where the @samp{\?}
was. For example,
ask you to edit the replacement string in the minibuffer, putting
point where the @samp{\?} was. For example,
@example
M-x replace-regexp @key{RET} \footnote@{ @key{RET}