Regular Expressions Cheat Sheet

Anchors

  • ^: start of the string or the start of a line in a multiline pattern

  • $: end of the string or the end of a line in a multiline pattern

  • \b: word boundary

  • \B: not word boundary (opposite of \b)

Note: Anchors are non-quantifiable (i.e. cannot be followed by a quantifier).

Character sequences

  • .: any character except line breaks

  • \w: any word character

  • \W: any non-word character (opposite of \w)

  • \s: any whitespace character

  • \S: any non-whitespace character (opposite of \s)

  • \d: any digit character

  • \D: any non-digit character (opposite of \d)

  • [abc]: a single character in the given set (here a, b or c)

  • [^abc]: a single character not in the given set (opposite of [abc])

  • [a-z]: a single character in the given range (here between a and z inclusive)

  • [^a-z]: a single character not in the given range (opposite of [a-z])

  • [a-zA-Z]: a single character in either of the given ranges

Note: Use \ to escape special characters (e.g. \, /, [, ], (, ), {, } etc.).

Quantifiers

  • a?: zero or one of a (equal to a{0,1})

  • a*: zero or more of a (equal to a{0,})

  • a+: one or more of a (equal to a{1,})

  • a{3}: exactly 3 of a

  • a{3,}: 3 or more of a

  • a{3,5}: between 3 and 5 of a (inclusive)

Note: a is any valid quantifiable expression.

Groups

  • (ab): match and capture everything enclosed (here exactly ab)

  • (a|b): match and capture either one character (here a or b)

  • (?:ab): match everything enclosed, without capturing

Flags

  • g: Global

  • m: Multiline

  • i: Case insensitive

  • u: Unicode

Note that this cheatsheet is meant only as a starting point and is by no means a complete guide to all the features and nuances of regular expressions. You can also read 6 JavaScript Regular Expression features you can use today for a deeper dive into some more advanced features.

Last updated