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) |