Regex cheatsheet

Javascript Regex/Regular Expression cheatsheet

Basic Characters
ExpressionDescription
. or [^\n\r]any character excluding a newline or carriage return
[A-Za-z]alphabet
[a-z]lowercase alphabet
[A-Z]uppercase alphabet
\d or [0-9]digit
\D or [^0-9]non-digit
_underscore
\w or [A-Za-z0-9_]alphabet, digit or underscore
\W or [^A-Za-z0-9_]inverse of \w
\Sinverse of \s
Whitespace characters
ExpressionDescription
space
\ttab
\nnewline
\rcarriage return
\sspace, tab, newline or carriage return
Character set

Think of a character set as an OR operation on the single characters that are enclosed between the square brackets. Use ^ after the opening [ to "negate" the character set. Within a character set, . means a literal period.

ExpressionDescription
[xyz]either x, y or z
[^xyz]neither x, y nor z
[1-3]either 1, 2 or 3
[^1-3]neither 1, 2 nor 3
Characters that require escaping

Outside a character set

ExpressionDescription
\.period
\^caret
\$dollar sign
|pipe
\\back slash
\/forward slash
\(opening bracket
\)closing bracket
\[opening square bracket
\]closing square bracket
\{opening curly bracket
\}closing curly bracket
Characters that require escaping (inside a character set)

A ^ must be escaped only if it occurs immediately after the opening [ of the character set. A - must be escaped only if it occurs between two alphabets or two digits.

ExpressionDescription
\\back slash
\]closing square bracket
Quantifiers

The quantifier goes after the expression to be quantified.

ExpressionDescription
{2}exactly 2
{2,}at least 2
{2,7}at least 2 but no more than 7
*0 or more
+1 or more
?exactly 0 or 1
Boundaries

How word boundary matching works: At the beginning of the string if the first character is \w. Between two adjacent characters within the string, if the first character is \w and the second character is \W. At the end of the string if the last character is \w.

ExpressionDescription
^start of string
$end of string
\bword boundary
Matching
ExpressionDescription
foo|barmatch either foo or bar
foo(?=bar)match foo if it's before bar
foo(?!bar)match foo if it's not before bar
(?<=bar)foomatch foo if it's after bar
(?<!bar)foomatch foo if it's not after bar
Grouping and capturing

Capturing groups are only relevant in the following methods: string.match(regexp), string.matchAll(regexp), string.replace(regexp, callback). \N is a backreference to the Nth capturing group. Capturing groups are numbered starting from 1.

ExpressionDescription
(foo)capturing group; match and capture foo
(?:foo)non-capturing group; match foo but without capturing foo
(foo)bar\1\1 is a backreference to the 1st capturing group; match foobarfoo
References and tools
Note: This cheatsheet provides a comprehensive reference for JavaScript regular expression syntax. Use the search box above to quickly find specific expressions or patterns. All patterns shown are compatible with JavaScript's built-in RegExp object.
Free Regex Cheatsheet - JavaScript Regular Expression Quick Reference