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.
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.
Matches the previous regexp either 0 or 1 times. For example, ca?r
matches either the string cr
or car
, and nothing else.
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: +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: +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.