The complete RegEx Cheat Sheet

44,553 views 8,180 downloads 30 Jan 2017 History
4.9 avg · 2 ratings

Anchors (bound­aries)

^
Start of string or line
$
End of string or line
\A
Start of input (ignores '­m' flag)
\Z
End of input (ignores '­m' flag)
\G
End of the previous match
\b
Word boundary (any position proceeded or followed - but not both - by a letter, digit or unders­core)
\B
Non-word boundary

Character and Sets

\w
Word
[a-zA-­Z0-9_]
\W
Non-word
[^a-zA­-Z0-9_]
\d
Digit
[0-9]
\D
Non-digit
\s
Whitespace (Form-­feed, tab, vertic­al-tab, new line, carriage return and space)
[\f\t­\x0b\n\r ]
\S
Non-wh­ite­space
\x
Hexade­cimal digit
\x00=null; \x0d=\r; [\x61-­\x7­a]=­[a-z]
\O
Octal digit
.
Any character (except new line \n)

Groups

(...)
Capture group - captures a set of characters for a later expression
(?:...)
Non-ca­pture group - groups an expression but does not capture. e.g. /((?:f­oo|­fu)­bar)/ matches "­foo­bar­" or "­fub­ar" without "­foo­" or "­fu" appearing as a captured subpattern
(?=...)
Lookahead - match on the characters following. e.g. /ab(?=c)/ match "­ab" only when followed by "­c"
(?!...)
Negative lookahead - match on characters that aren't following. e.g. /ab(?!c)/ match "­ab" only when NOT followed by "­c"
(?<­=...)
Positive look-b­ehind assertion. e.g. /(?<=f­oo)bar/ matches "­bar­" when preceded by "­foo­"
(?<­!...)
Negative look-b­ehind assertion. e.g. /(?<!f­oo)bar/ - matches "­bar­" when not preceded by "­foo­"
(?#...)
Comment e.g. (?# This comment is ignored entirely)

Unicode character support

\x0000­-\xFFFF
Unicode hexade­cimal character set
\x00-\xFF
ASCII hexade­cimal character set
\cA-\cZ
Control characters
Unicode is not fully supported on all platforms. JavaScript prior to ES6 for example allows ASCII hex but not full Unicode hex.

Special Characters

\n
New line
\r
Carriage return
\t
Tab
\v
Vertical tab
\f
Form feed

Quanti­fiers

*
Zero or more
+
One or more
?
Zero or One (i.e. optional)
{n}
Exactly '­n' (any number)
{n,}
Minimum ('n' or more)
{n,m}
Range ('n' or more, but less or equal to '­m')

Flags (expre­ssion modifiers)

/m
Milti-­line. (Makes ^ and $ match the start and end of a line respec­tively)
/s
Treat input as a single line. (Makes '.' match new lines as well)
/i
Case insens­itive pattern matching.
/g
Global matching. (Don't stop after first match in a replac­ement function)
/x
Extended matching. (disregard white-­space not explicitly escaped, and allow comments starting with #)

Escape Characters

In regular expres­sions, the following characters have special meaning and must be escaped: ^ $ [ { ( ) < > . * \ + | ?

Additi­onally the hyphen (-) and close square bracket (]) must be escaped when in an expression set ([...]).

e.g. /\(\d{3}\) \d{4}[\- ]\d{4}/ matches "­(nnn) nnnn-n­nnn­" or "­(nnn) nnnn nnnn" (where n is a numeric digit).

Badges

Useful Cheat Sheet Nice Cheat Sheet Good Cheat Sheet Downloaded from Unusual Locations × 3

Comments (1)

BillSmith 20:16 30 Jan 2018

Greetings, and thanks for providing this. Where can I find a comprehensive, accessible textual reference on this topic that includes numerous examples? Instead of pursuing blind trial and error, I would like to understand thoroughly what I am doing, and why. Thanks.

Reply

Cheatography n. The art of mapping complex subjects into clear, instantly navigable reference guides.