Character classes

Pattern Description
. Any character, except newline
\w Word
\d Digit
\s Whitespace
\W Not word
\D Not digit
\S Not whitespace
[abc] Any of a, b, or c
[a-e] Characters between a and e
[1-9] Digit between 1 and 9
[[:print:]] Any printable character including spaces
[^abc] Any character except a, b or c


Pattern Description
\G Start of match
^ Start of string *
$ End of string *
\A Start of string
\Z End of string
\z Absolute end of string
\b A word boundary
\B Non-word boundary
^abc Start with abc
abc$ End with abc

For multiline patterns (m flag), ^ and $ will act as start and end of line.

Escaped characters

Pattern Description
\. \* \\ Escape special character used by regex
\t Tab
\n Newline
\r Carriage return


Pattern Description
(abc) Capture group
(a|b) Match a or b
(?:abc) Match abc, but don’t capture
\1 Substituted with text matched of the 1st capturing group


Pattern Description
a* Match 0 or more
a+ Match 1 or more
a? Match 0 or 1
a{5} Match exactly 5
a{,3} Match up to 3
a{3,} Match 3 or more
a{1,3} Match between 1 and 3

Lookahead & Lookbehind

Pattern Description
a(?=b) Match a in baby but not in bay
a(?!b) Match a in Stan but not in Stab
(?<=a)b Match b in crabs but not in cribs
(?<!a)b Match b in fib but not in fab
0 Comments for this cheatsheet. Write yours!