Expression |
Description |
^ |
Start of string, or start of line in multi-line pattern |
\A |
Start of string |
$ |
End of string, or end of line in multi-line pattern |
\Z |
End of string |
\b |
Word boundary |
\B |
Not word boundary |
< |
Start of word |
> |
End of word |
Expression |
Description |
\c |
Control character |
\s |
White space |
\S |
Not white space |
\d |
Digit |
\D |
Not digit |
\w |
Word |
\W |
Not word |
\x |
Hexadecimal digit |
\O |
Octal digit |
Expression |
Description |
\n |
New line |
\r |
Carriage return |
\t |
Tab |
\v |
Vertical tab |
\f |
Form feed |
\xxx |
Octal character xxx |
\xhh |
Hex character hh |
Expression |
Description |
* |
0 or more |
+ |
1 or more |
? |
0 or 1 |
{3} |
Exactly 3 |
{3,} |
3 or more |
{3,5} |
3, 4 or 5 |
Add a ? to a quantifier to make it ungreedy.
Expression |
Description |
\ |
Escape following character |
\Q |
Begin literal sequence |
\E |
End literal sequence |
"Escaping" is a way of treating characters which have a special meaning in regular expressions literally, rather than as special characters.
Expression |
Description |
[:upper:] |
Upper case letters |
[:lower:] |
Lower case letters |
[:alpha:] |
All letters |
[:alnum:] |
Digits and letters |
[:digit:] |
Digits |
[:xdigit:] |
Hexadecimal digits |
[:punct:] |
Punctuation |
[:blank:] |
Space and tab |
[:space:] |
Blank characters |
[:cntrl:] |
Control characters |
[:graph:] |
Printed characters |
[:print:] |
Printed characters and spaces |
[:word:] |
Digits, letters and underscore |
Expression |
Description |
?= |
Lookahead assertion |
?! |
Negative lookahead |
?<= |
Lookbehind assertion |
?!= or ?<! |
Negative lookbehind |
?> |
Once-only Subexpression |
?() |
Condition [if then] |
?()| |
Condition [if then else] |
?# |
Comment |
Expression |
Description |
. |
Any character except new line (\n) |
(a |
b) |
(...) |
Group |
(?:...) |
Passive (non-capturing) group |
[abc] |
Range (a or b or c) |
[^abc] |
Not (a or b or c) |
[a-q] |
Lower case letter from a to q |
[A-Q] |
Upper case letter from A to Q |
[0-7] |
Digit from 0 to 7 |
\x |
Group/subpattern number "x" |
Ranges are inclusive.
Expression |
Description |
g |
Global match |
i * |
Case-insensitive |
m * |
Multiple lines |
s * |
Treat string as single line |
x * |
Allow comments and whitespace in pattern |
e * |
Evaluate replacement |
U * |
Ungreedy pattern |
* PCRE modifier
Expression |
Description |
$n |
nth non-passive group |
$2 |
"xyz" in /^(abc(xyz))$/ |
$1 |
"xyz" in /^(?:abc)(xyz)$/ |
$` |
Before matched string |
$' |
After matched string |
$+ |
Last matched string |
$& |
Entire matched string |
Some regex implementations use \ instead of $.
^
[
.
$
{
*
(
+
)
|
?
<
>
The escape character is usually \
Expression |
Description |
<word> |
match the boundary of a word |