RegExp Tester
PCRE Cheat Sheet
Meta Characters | |
---|---|
^ | Start of subject (or line in multiline mode) |
$ | End of subject (or line in multiline mode) |
[ | Start character class definition |
] | End character class definition |
| | Alternates ( a|b matches a or b ) |
( | Start subpattern |
) | End subpattern |
\ | Escape character |
Pattern Modifiers | |
---|---|
i | Ignore case |
m | Multiline mode |
s | Dotall ( . includes newline ) |
x | Extended - comments & whitespace |
e | Enables evaluation of replacement as PHP code |
S | Extra analysis of pattern |
U | Pattern is ungreedy |
u | Pattern is treated as UTF-8 |
Base Character Classes | |
---|---|
\w | Any "word" character (a-z 0-9 _) |
\W | Any non-"word" character |
\s | Whitespace (space, tab, CRLF) |
\S | Any non-whitespace character |
\d | Digits (0-9) |
\D | Any non-digit character |
. | Any character except newline |
Quantifiers | |
---|---|
n* | Zero or more of n |
n+ | One or more of n |
n? | Zero or one occurrence of n |
{n} | n occurrences exactly |
{n,} | At least n occurrences |
{,m} | At most m occurrences |
{n,m} | Between n and m occurrences inclusive |
Point Based Assertions | |
---|---|
\b | Word boundary |
\B | Not a word boundary |
\A | Start of a subject |
\Z | End of a Subject or newline at end |
\z | End of a Subject |
\G | First matching position in subject |
Subpatern Modifiers & Assertions | ||
---|---|---|
(?:) | Non capturing subpattern | ((?:foo|fu)bar) matches foobar or fubar without foo or fu appearing as a captured subpattern |
(?=) | Positive look ahead assertion | foo(?=bar) matches foo when followed by bar |
(?!) | Negative look ahead assertion | foo(?!bar) matches foo when not followed by bar |
(?<=) | Positive look behind assertion | (?<=foo)bar matches bar when preceded by foo |
(?<!) | Negative look behind assertion | (?<!foo)bar matches bar when not preceded by foo |
(?>) | Once-only subpatterns | (?>\d+)bar Performance enhancing when bar not present |
(?(x)) | Conditional subpatterns | (?(3)foo|fu)bar Matches foo if 3rd subpattern has matched, fu if not |
(?#) | Comment | (?# Pattern does x y or z) |