Regular Expressions Cheat Sheet: by Via
Regular Expressions Cheat Sheet: by Via
Regular Expressions Cheat Sheet: by Via
^ Start of string, or start of line in multi- ?= Lookahead assertion . Any character except new line (\n)
line pattern ?! Negative lookahead (a|b) a or b
\A Start of string ?<= Lookbehind assertion (...) Group
$ End of string, or end of line in multi-line ?!= or ?<! Negative lookbehind (?:...) Passive (non-capturing) group
pattern
?> Once-only Subexpression [abc] Range (a or b or c)
\Z End of string
?() Condition [if then] [^abc] Not (a or b or c)
\b Word boundary
?()| Condition [if then else] [a-q] Lower case letter from a to q
\B Not word boundary
?# Comment [A-Q] Upper case letter from A to Q
\< Start of word
[0-7] Digit from 0 to 7
\> End of word Quantifiers
\x Group/subpattern number "x"
* 0 or more {3} Exactly 3
Character Classes Ranges are inclusive.
+ 1 or more {3,} 3 or more
\c Control character
? 0 or 1 {3,5} 3, 4 or 5 Pattern Modifiers
\s White space
Add a ? to a quantifier to make it ungreedy. g Global match
\S Not white space
i* Case-insensitive
\d Digit Escape Sequences
m* Multiple lines
\D Not digit \ Escape following character
s* Treat string as single line
\w Word \Q Begin literal sequence
x* Allow comments and whitespace in
\W Not word \E End literal sequence pattern
\x Hexadecimal digit
"Escaping" is a way of treating characters e* Evaluate replacement
\O Octal digit which have a special meaning in regular U* Ungreedy pattern
expressions literally, rather than as special
* PCRE modifier
POSIX characters.
[:upper:] Upper case letters
String Replacement
Common Metacharacters
[:lower:] Lower case letters
$n nth non-passive group
^ [ . $
[:alpha:] All letters
$2 "xyz" in /^(abc(xyz))$/
{ * ( \
[:alnum:] Digits and letters
$1 "xyz" in /^(?:abc)(xyz)$/
+ ) | ?
[:digit:] Digits
$` Before matched string
< >
[:xdigit:] Hexadecimal digits
$' After matched string
[:punct:] Punctuation The escape character is usually \
$+ Last matched string
[:blank:] Space and tab
Special Characters $& Entire matched string
[:space:] Blank characters
\n New line Some regex implementations use \ instead
[:cntrl:] Control characters
of $.
\r Carriage return
[:graph:] Printed characters
\t Tab
[:print:] Printed characters and spaces
\v Vertical tab
[:word:] Digits, letters and underscore
\f Form feed
\xxx Octal character xxx
\xhh Hex character hh