[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
A regular expression (regexp, for short) is a pattern that denotes a class of alternative strings to match, possibly infinitely many. GNU Emacs provides both incremental and nonincremental ways to search for a match for a regexp. The syntax of regular expressions is explained in the following section.
Incremental search for a regexp is done by typing C-M-s
(isearch-forward-regexp
), by invoking C-s with a prefix
argument (whose value does not matter), or by typing M-r within a
forward incremental search. This command reads a search string
incrementally just like C-s, but it treats the search string as a
regexp rather than looking for an exact match against the text in the
buffer. Each time you add text to the search string, you make the regexp
longer, and the new regexp is searched for. To search backward for a
regexp, use C-M-r (isearch-backward-regexp
), C-r with a
prefix argument, or M-r within a backward incremental search.
All of the control characters that do special things within an ordinary incremental search have the same function in incremental regexp search. Typing C-s or C-r immediately after starting the search retrieves the last incremental search regexp used; that is to say, incremental regexp and non-regexp searches have independent defaults. They also have separate search rings that you can access with M-p and M-n.
If you type <SPC> in incremental regexp search, it matches any sequence
of whitespace characters, including newlines. If you want to match just a
space, type C-q <SPC>. You can control what a bare space matches
by setting the variable search-whitespace-regexp
to the desired
regexp.
In some cases, adding characters to the regexp in an incremental regexp search can make the cursor move back and start again. For example, if you have searched for ‘foo’ and you add ‘\|bar’, the cursor backs up in case the first ‘bar’ precedes the first ‘foo’.
Forward and backward regexp search are not symmetrical, because regexp matching in Emacs always operates forward, starting with the beginning of the regexp. Thus, forward regexp search scans forward, trying a forward match at each possible starting position. Backward regexp search scans backward, trying a forward match at each possible starting position. These search methods are not mirror images.
Nonincremental search for a regexp is done by the functions
re-search-forward
and re-search-backward
. You can invoke
these with M-x, or bind them to keys, or invoke them by way of
incremental regexp search with C-M-s <RET> and C-M-r
<RET>.
If you use the incremental regexp search commands with a prefix argument,
they perform ordinary string search, like isearch-forward
and
isearch-backward
. @xref{Incremental Search}.
[ < ] | [ > ] | [ << ] | [Plus haut] | [ >> ] | [Top] | [Table des matières] | [Index] | [ ? ] |
Ce document a été généré par Eric Reinbold le 23 Février 2009 en utilisant texi2html 1.78.