Regular Expressions Cheatsheet
Basic Classes: Playing with characters
.
Matches any single character except newline.
c.t
matches cat
, cut
, cot
, etc.
*
Matches zero or more occurrences of the preceding character.
ab*c
matches ac
, abc
, abbc
, abbbc
, etc.
+
Matches one or more occurrences of the preceding character.
ab+c
matches abc
, abbc
, abbbc
, etc.
?
Matches zero or one occurrence of the preceding character.
colou?r
matches color
or colour
.
^
Matches the beginning of a line.
^hello
matches hello
at the beginning of a line.
$
Matches the end of a line.
world$
matches world
at the end of a line.
[]
Matches any one of the enclosed characters.
[abc]
matches a
, b
, or c
.
[a-z]
Matches any character between a
and z
.
[a-z]+
matches any lowercase word.
[^]
Matches any character not enclosed in the brackets.
[^abc]
matches any character except a
, b
, or c
.
()
Groups multiple tokens together and creates a capture group.
([0-9]{3})-([0-9]{4})
matches a phone number in the format 123-4567
and captures the area code and number.
\
Escapes a special character.
\.
matches a period.
\d
Matches any digit character. Equivalent to [0-9]
.
\d{3}
matches any three digits.
\w
Matches any word character. Equivalent to [a-zA-Z0-9_]
.
\w+
matches any word.
\s
Matches any whitespace character. Equivalent to [ \t\n\r\f\v]
.
\s+
matches any whitespace.
Advanced Regex Concepts
Quantifiers
{n}
<br>{n,m}
<br>*
<br>+
<br>?
Quantifiers specify how many times a pattern should match. {n}
specifies an exact number of matches, {n,m}
specifies a range of matches, *
specifies zero or more matches, +
specifies one or more matches, and ?
specifies zero or one match.
Alternation
`
`
Grouping
()
Grouping allows you to create subexpressions within a regular expression. This can be useful for applying quantifiers or alternation to multiple characters at once. For example, (abc)+
matches one or more repetitions of the sequence "abc".
Backreferences
\1
, \2
, etc.
Backreferences allow you to refer to a previously matched group within a regular expression. For example, (\w+) \1
matches repeated words like "hello hello" or "cat cat".
Lookahead and Lookbehind
(?=...)
, (?!...)
, (?<=...)
, (?<!...)
Lookahead and lookbehind are zero-width assertions that allow you to check for patterns before or after the current position in the string, without actually consuming any characters. Positive lookahead ((?=...)
) matches if the pattern inside the lookahead matches, negative lookahead ((?!...)
) matches if the pattern inside the lookahead does not match, positive lookbehind ((?<=...)
) matches if the pattern inside the lookbehind matches behind the current position, and negative lookbehind ((?<!...)
) matches if the pattern inside the lookbehind does not match behind the current position.
Last updated