A regular expression ( regexp ) allows the specification of the search string to include wild characters, repeated characters, ranges of characters, and alternatives. Strings which follow a specific pattern can be located, which makes regular expression searches very powerful.
The regular expression syntax used is similar to that of Emacs. In addition to ordinary characters, a regular expression can contain the following special characters to produce the search pattern:
Matches any single character except a newline. For example,
c.r
matches any three character string starting with
c
and ending with
r
.
Matches the previous regexp any number of times (including 0 times). For example,
ca*r
matches strings beginning with
c
and ending with
r
, with any number of
a
's in-between.
An empty regexp followed by
*
matches an empty part of the input. By extension,
^*
will match exactly what
^
matches.
Matches the previous regexp any number of times, but at least once. For example,
ca+r
matches strings beginning with
c
and ending with
r
, with at least one
a
in-between. An empty regexp followed by
+
matches an empty part of the input.
Matches the previous regexp either 0 or 1 times. For example,
ca?r
matches either the string
cr
or
car
, and nothing else. An empty regexp followed by
?
matches an empty part of the input.
Matches the next regexp as long as it is at the beginning of a line. For example,
^foo
matches the string
foo
as long as it is at the beginning of a line.
Matches the previous regexp as long as it is at the end of a line. For example,
foo$
matches the string
foo
as long as it is at the end of a line.
Contains a character set to be used for matching, where the other special characters mentioned do not apply. The empty string is automatically part of the character set. For example,
[a.b]
matches either
a
or
.
or
b
or the empty string. The regexp
c[ad]*r
matches strings beginning with
c
and ending with
r
, with any number of
a
's and
d
's in-between.
The characters
-
and
^
have special meanings inside character sets.
-
defines a range and
^
defines a complement character set. For example,
[a-d]
matches any character in the range
a
to
d
inclusive.
[^ab]
matches any character except
a
or
b
.
Quotes the special characters. For example,
\*
matches the character
*
(that is,
*
has lost its special meaning).
Specifies an alternative. For example,
ab\|cd
matches either
ab
or
cd
.
Provides a grouping construct. For example,
ab\(cd\|ef\)
matches either
abcd
or
abef
.
Arguments:
string
Key sequence:
AltMetaMeta+Ctrl+S
string
editor:regexp-forward-search-command
p
&optional
string
the-point
limit
Performs a forward search for string using regular expressions. The search pattern must be terminated with a carriage return before any searching is done. If an empty string is provided, the last regexp search is repeated.
The argument the-point specifies the position from which the search is to start. The default is the current point. limit specifies a limiting point in the buffer for the search. The default is the end of the buffer.
Arguments:
string
Key sequence:
AltMetaMeta+Ctrl+R
string
editor:regexp-reverse-search-command
p
&optional
string the-point limit
Performs a backward search for string using regular expressions. The search pattern must be terminated with a carriage return before any searching is done. If an empty string is provided, the last regexp search is repeated.
The argument the-point specifies the position from which the search is to start. The default is one position before the current point. limit specifies a limiting point in the buffer for the search. The default is the current point.
Arguments: None
Default binding: None
editor:count-occurrences-command
p
&optional
regexp
Counts the number of regular expression matches for the string regexp between the current point and the end of the buffer.
Count Matches
is a synonym for
Count Occurrences
.