Regex reference sheet
This page serves as a quick reference guide for regular expression, including common tokens, meta sequences, general tokens, group constants, and more.
Common tokens |
|
A single character of: a, b, or c |
[abc] |
A character except: a, b, or c |
[^abc] |
A character in the range: a-z |
[a-z] |
A character not in range: a-z |
[^a-z] |
A character in the range: a-z or A-Z |
[a-zA-Z] |
Any single character |
. |
Any whitespace character |
\s |
Any non-whitespace character |
\S |
Any digit |
\d |
Any non-digit |
\D |
Any word character |
\w |
Any non-word character |
\W |
Capture enclosed |
(...) |
Match either a or b |
(a|b) |
Zero or one of a |
a? |
Zero or more of a |
a* |
One or more of a |
a+ |
Exactly 3 of a |
a{3} |
Between 3 and 6 of a |
a{3,6} |
Start of string |
^ |
End of string |
$ |
A word boundary |
\n |
None-word boundary |
\B |
General tokens |
|
Newline |
\n |
Carriage return |
\r |
Tab |
\t |
Null character |
\0 |
Character class modifiers |
|
A single character of: a, b, or c |
[abc] |
A character except: a, b, or c |
[^abc] |
A character in the range: a-z |
[a-z] |
A character not in range: a-z |
[^a-z] |
A character in the range: a-z or A-Z |
[a-zA-Z] |
Letters and digits |
[:alnum:] |
Letters |
[:alpha:] |
ASCII codes 0-127 |
[:ascii:] |
Space or tab only |
[:blank:] |
Control characters |
[:cntrl:] |
Digits |
[:digit:] |
Visible characters (not space) |
[:word:] |
Lowercase letters |
[:xdigit:] |
Uppercase letters |
[:<:] |
Word characters |
[:>:] |
Group constants |
|
Capture everything enclosed |
(...) |
Match either a or b |
(a|b) |
Match everything enclosed |
(?:...) |
Atomic grouping (non-capturing) |
(?>...) |
Duplicate sub-pattern group number |
(?|...) |
Comment |
(?#...) |
For case insensitivity |
(?i) |
Named capturing group |
(?'name'...) |
Named capturing group |
(?<name>...) |
Named capturing group |
(?P<name>...) |
Inline modifiers |
(?imsxXU) |
Conditional statements |
(?(1)yes|no) |
Recursive conditional statements |
(?(R#)yes|no) |
Conditional statement |
(?(R&name)yes|no) |
Lookahead conditional |
(?(?=...)yes|no) |
Lookbehind conditional |
(?(?<=...)yes|no) |
Recurse entire pattern |
(?R) |
Recurse first sub-pattern |
(?1) |
Recurse first relative subpattern |
(?+1) |
Recurse subpattern ‘name’ |
(?&name) |
Match subpattern ‘name’ |
(?P=name) |
Recurse subpattern ‘name’ |
(?P>name) |
Pre-define patterns before use |
(?(DEFINE)...) |
Positive lookahead |
(?=...) |
Negative lookahead |
(?!...) |
Positive lookbehind |
(?<=...) |
Negative lookbehind |
(?<!...) |
Control verb |
(*ACCEPT) |
Control verb |
(*FAIL) |
Control verb |
(*MARK:NAME) |
Control verb |
(*COMMIT) |
Control verb |
(*PRUNE) |
Control verb |
(*SKIP) |
Control verb |
(*THEN) |
Pattern modifier |
(*UTF) |
Pattern modifier |
(*UTF8) |
Pattern modifier |
(*UTF16) |
Pattern modifier |
(*UTF32) |
Pattern modifier |
(*UCP) |
Line break modifier |
(*CR) |
Line break modifier |
(*LF) |
Line break modifier |
(*CRLF) |
Line break modifier |
(*ANYCRLF) |
Line break modifier |
(*ANY) |
Line break modifier |
\R |
Line break modifier |
(*BSR_ANYCRLF) |
Line break modifier |
(*BSR_UNICODE) |
Regex engine modifier |
(*LIMIT_MATCH=x) |
Regex engine modifier |
(*LIMIT_RECURSION=d) |
Regex engine modifier |
(*NO_AUTO_POSSESS) |
Regex engine modifier |
(*NO_START_OPT) |
Quantifiers |
|
Zero or one of a |
a? |
Zero or more of a |
a* |
One or more of a |
a+ |
Exactly 3 of a |
a{3} |
3 or more of a |
a{3,} |
Between 3 and 6 of a |
a{3,6} |
Greedy quantifier |
a* |
Lazy quantifier |
a*? |
Possessive quanitifer |
a*+ |
Anchors |
|
Start of match |
\G |
Start of string |
^ |
End of string |
$ |
Start of string |
\A |
End of string |
\Z |
Absolute end of string |
\z |
A word boundary |
\b |
A non-word boundary |
\B |
Flags and modifiers |
|
Global |
g |
Multiline |
m |
Case-sensitive |
l |
Ignore whitespace |
x |
Single line |
s |
Unicode |
u |
Extended |
X |
Ungreedy |
U |
Anchor |
A |
Duplicate group names |
J |
Substitution |
|
Complete match contents |
\0 |
Contents in capture group 1 |
\1 or $1 |
Contents in capture group foo |
${foo} |
Hexidecimal replacement values |
\x20, \x{06fa} |
Tab |
\t |
Carriage return |
\r |
Newline |
\n |
Form-feed |
\f |
Uppercase transformation |
\U |
Lowercase transformation |
\L |
Terminate any transformation |
\E |