Regular expressions (REs), unlike simple queries, allow you to search for text which matches a particular pattern.
REs are similar to (but more poweful than) the "wildcards" used in the command-line interfaces found in operating systems such as Unix and MS-DOS. REs are used by sophisticated search engines, as well as by many Unix-based languages and tools ( e.g., `awk`, `grep`, `lex`, `perl`, and `sed` ).
**Examples**
compan(y|ies) |
Search for company , companies |
(peter|paul) |
Search for peter , paul |
bug* |
Search for bug , bugs , bugfix |
[Bb]ag |
Search for Bag , bag |
b[aiueo]g |
Second letter is a vowel. Matches bag , bug , big |
b.g |
Second letter is any letter. Matches also b&g |
[a-zA-Z] |
Matches any one letter (not a number and a symbol) |
[^0-9a-zA-Z] |
Matches any symbol (not a number or a letter) |
[A-Z][A-Z]* |
Matches one or more uppercase letters |
[0-9][0-9][0-9]-[0-9][0-9]- [0-9][0-9][0-9][0-9] |
US social security number, e.g. 123-45-6789 |
Here is stuff for our UNIX freaks:
(copied from 'man grep')
\c A backslash (\) followed by any special character is a
one-character regular expression that matches the spe-
cial character itself. The special characters are:
+ `.', `*', `[', and `\' (period, asterisk,
left square bracket, and backslash, respec-
tively), which are always special, except
when they appear within square brackets ([]).
+ `^' (caret or circumflex), which is special
at the beginning of an entire regular expres-
sion, or when it immediately follows the left
of a pair of square brackets ([]).
+ $ (currency symbol), which is special at the
end of an entire regular expression.
. A `.' (period) is a one-character regular expression
that matches any character except NEWLINE.
[string]
A non-empty string of characters enclosed in square
brackets is a one-character regular expression that
matches any one character in that string. If, however,
the first character of the string is a `^' (a circum-
flex or caret), the one-character regular expression
matches any character except NEWLINE and the remaining
characters in the string. The `^' has this special
meaning only if it occurs first in the string. The `-'
(minus) may be used to indicate a range of consecutive
ASCII characters; for example, [0-9] is equivalent to
[0123456789]. The `-' loses this special meaning if it
occurs first (after an initial `^', if any) or last in
the string. The `]' (right square bracket) does not
terminate such a string when it is the first character
within it (after an initial `^', if any); that is,
[]a-f] matches either `]' (a right square bracket ) or
one of the letters a through f inclusive. The four
characters `.', `*', `[', and `\' stand for themselves
within such a string of characters.
The following rules may be used to construct regular expres-
sions:
* A one-character regular expression followed by `*' (an
asterisk) is a regular expression that matches zero or
more occurrences of the one-character regular expres-
sion. If there is any choice, the longest leftmost
string that permits a match is chosen.
^ A circumflex or caret (^) at the beginning of an entire
regular expression constrains that regular expression
to match an initial segment of a line.
$ A currency symbol ($) at the end of an entire regular
expression constrains that regular expression to match
a final segment of a line.
* A regular expression (not just a one-
character regular expression) followed by `*'
(an asterisk) is a regular expression that
matches zero or more occurrences of the one-
character regular expression. If there is
any choice, the longest leftmost string that
permits a match is chosen.
+ A regular expression followed by `+' (a plus
sign) is a regular expression that matches
one or more occurrences of the one-character
regular expression. If there is any choice,
the longest leftmost string that permits a
match is chosen.
? A regular expression followed by `?' (a ques-
tion mark) is a regular expression that
matches zero or one occurrences of the one-
character regular expression. If there is
any choice, the longest leftmost string that
permits a match is chosen.
| Alternation: two regular expressions
separated by `|' or NEWLINE match either a
match for the first or a match for the
second.
() A regular expression enclosed in parentheses
matches a match for the regular expression.
The order of precedence of operators at the same parenthesis
level is `[ ]' (character classes), then `*' `+' `?'
(closures),then concatenation, then `|' (alternation)and
NEWLINE.