Regular Expression Cheat Sheet (RECS)

Regular Expressions Anchors
^Start of string, or start of line in multi-line pattern
\AStart of string
$End of string, or end of line in multi-line pattern
\ZEnd of string
\bWord boundary
\BNot word boundary
\<Start of word
\>End of word
Regular Expressions Character Classes
\cControl character
\sWhite space
\SNot white space
\DNot digit
\WNot word
\xHexade­cimal digit
\OOctal digit
Regular Expressions POSIX
[:upper:]Upper case letters
[:lower:]Lower case letters
[:alpha:]All letters
[:alnum:]Digits and letters
[:xdigit:]Hexade­cimal digits
[:blank:]Space and tab
[:space:]Blank characters
[:cntrl:]Control characters
[:graph:]Printed characters
[:print:]Printed characters and spaces
[:word:]Digits, letters and underscore
Regular Expressions Assertions
?=Lookahead assertion
?!Negative lookahead
?<=Lookbehind assertion
?!= or ?<!Negative lookbehind
?>Once-only Subexp­ression
?()Condition [if then]
?()|Condition [if then else]
Regular Expressions Quantifiers
*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.
Regular Expressions Escape Sequences
\Escape following character
\QBegin literal sequence
\EEnd literal sequence
"­Esc­api­ng" is a way of treating characters which have a special meaning in regular expres­sions literally, rather than as special charac­ters.
Regular Expression Common Metacharacters
The escape character is usually the backslash - \.
Regular Expressions Special Characters
\nNew line
\rCarriage return
\vVertical tab
\fForm feed
\xxxOctal character xxx
\xhhHex character hh
Regular Expressions Groups and Ranges
.Any character except new line (\n)
(a|b)a or b
(?:...)Passive (non-c­apt­uring) group
[abc]Range (a or b or c)
[^abc]Not a or b or c
[a-q]Letter from a to q
[A-Q]Upper case letter from A to Q
[0-7]Digit from 0 to 7
\nnth group/­sub­pattern
Ranges are inclusive.
Regular Expressions Pattern Modifiers
gGlobal match
mMultiple lines
sTreat string as single line
xAllow comments and white space in pattern
eEvaluate replac­ement
UUngreedy pattern
Regular Expressions String Replacement
$nnth non-pa­ssive group
$2"­xyz­" in /^(abc­(xy­z))$/
$1"­xyz­" in /^(?:a­bc)­(xyz)$/
$`Before matched string
$'After matched string
$+Last matched string
$&Entire matched string
Some regex implem­ent­ations use \ instead of $.


DaveChild's Cheatography profile


I would like to take this opportunity to thank the source from which I stole this dataset.

If it was not for him, I would not have been able to make this site. I am Thaoh, and this is but a tribute.

As a side note, if Cheatography wants to improve their design.. I bid you welcome. If you happen to want to hire me; I have an account on your site :D