Regular Expression Tools

PHP Regex Cheat Sheet

Basic Patterns

Pattern Description
. Matches any single character except a newline.
^ Matches the start of a string.
$ Matches the end of a string.
* Matches 0 or more repetitions of the preceding character or group.
+ Matches 1 or more repetitions of the preceding character or group.
? Matches 0 or 1 repetition of the preceding character or group.
{n} Matches exactly n repetitions of the preceding character or group.
{n,} Matches n or more repetitions of the preceding character or group.
{n,m} Matches between n and m repetitions of the preceding character or group.

Character Classes

Pattern Description
\d Matches any digit (0-9).
\D Matches any non-digit.
\w Matches any word character (alphanumeric + underscore).
\W Matches any non-word character.
\s Matches any whitespace character (spaces, tabs, line breaks).
\S Matches any non-whitespace character.

Assertions

Pattern Description
\b Matches a word boundary.
\B Matches a non-word boundary.
(?=...) Positive lookahead.
(?!...) Negative lookahead.

Groups and Backreferences

Pattern Description
( ... ) Captures the matched content.
(?: ... ) Non-capturing group.
\1 Backreference to the first capturing group.
\2 Backreference to the second capturing group, and so on.

Modifiers

Modifier Description
i Case-insensitive search.
m Multiline search.
s Dot matches newline.
x Extended. Whitespace data characters in the pattern are ignored.
U Ungreedy pattern. Will take the smallest match.

Escape Sequences

Pattern Description
\A Matches the start of the subject string.
\Z Matches the end of the subject or the newline at the end.
\z Matches the end of the subject.
\G Matches the point where the last match finished.
\Q...\E Quotes any metacharacters in the ... data between.

Character Types

Pattern Description
\C Matches a single byte in UTF-8 mode.
\R Matches any newline sequence.
\X Matches an extended Unicode sequence.

Unicode Property Escapes

Pattern Description
\p{...} Matches a character with a particular Unicode property.
\P{...} Matches a character without a particular Unicode property.

Atomic Grouping and Possessive Quantifiers

Pattern Description
(?>...) Atomic group.
*+ Possessive quantifier (0 or more).
++ Possessive quantifier (1 or more).
?+ Possessive quantifier (0 or 1).

Lookbehind Assertions

Pattern Description
(?<=...) Positive lookbehind.
(? Negative lookbehind.

Conditional Patterns

Pattern Description
(?(condition)yes-pattern|no-pattern) Conditional pattern.

Comments

Pattern Description
(?#...) Comment; the ... content is ignored.

Modifiers

Modifier Description
J Allows duplicate named capture groups.
N Disables capturing groups (named and unnamed).
U Makes the quantifiers lazy by default.

Recursion and Subroutine Calls

Pattern Description
(?R) Recurses the entire pattern.
(?1) Recurses the first capturing group.
(?&name) Recurses the named capturing group.
(?P>name) Another way to recurse the named capturing group.

Callouts

Pattern Description
(?C) Callout, typically used for debugging.

Relative Backreferences

Pattern Description
\g{-1} Backreference to the most recently opened capturing group.

Named Patterns

Pattern Description
(?P...) Define a named capturing group.
(?&name) Subroutine call to a named group.
(?P=name) Backreference to a named group.

Control Verbs

Pattern Description
(*ACCEPT) Ends the match successfully, as if the end of the subject string is reached.
(*FAIL) Forces the pattern to fail.
(*MARK:NAME) Sets a mark that can be returned on failure.

Branch Reset

Pattern Description
(?|...) Branch reset group. Alternatives inside share the same capturing groups.
Copyright © 2019 - RegExpLib.com