Regular expressions can be used with functions such as find-regexp-in-string, regexp-find-symbols, count-regexp-occurrences and editor:regular-expression-search and also in the LispWorks IDE.
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 GNU Emacs. Most characters match themselves, but 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 zero times). For example,
An empty regexp followed by |
+ |
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,
The characters |
\ |
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 . |
LispWorks® User Guide and Reference Manual - 01 Dec 2021 19:30:25