Table of Contents

RegEx

Regular Expressions

Good Cheat Sheet | Basic Explanation

Anchors

Syntax Description
^ Start of string, or start of line in multi-line pattern
$ End of string, or end of line in multi-line pattern

Quantifiers

Syntax Description
* 0 or more
? 0 or 1
+ 1 or more
{3} Exactly 3
{3,} 3 or more
{3,5} 3, 4 or 5
note Add a ? to a quantifier to make it ungreedy

Escape

Syntax Description
\ Escape following character

­Esc­api­ng is a way of treating characters which have a special meaning in regular expres­sions literally, rather than as special charac­ters.


Groups and Ranges

Syntax Description
. Any character except new line (\n)
(a|b) a or b
(…) Group, capturing
(?:…) Passive (non-c­apt­uring) group
[abc] Range (a or b or c)
[^abc] Not (a or b or c)
[a-q] Lower case letter from a to q
[A-Q] Upper case letter from A to Q
[0-7] Digit from 0 to 7

Use a group to “capture and replace”.


String Replac­ement

Syntax Description
$n nth non-pa­ssive group
$2 "­xyz­" in /^(abc­(xy­z))$/
$1 "­xyz­" in /^(?:a­bc)­(xyz)$/
$` Before matched string
$' After matched string
$+ Last matched string
$& Entire matched string

Note: Some regex implem­ent­ations use \ instead of $.


Character Classes

Syntax Description
\c Control character
\s White space
\S Not white space
\d Digit
\D Not digit
\w Word
\W Not word
\x Hexade­cimal digit
\O Octal digit

POSIX

Syntax Description
[:upper:] Upper case letters
[:lower:] Lower case letters
[:alpha:] All letters
[:alnum:] Digits and letters
[:digit:] Digits
[:xdigit:] Hexade­cimal digits
[:punct:] Punctu­ation
[:blank:] Space and tab
[:space:] Blank characters
[:cntrl:] Control characters
[:graph:] Printed characters
[:print:] Printed characters and spaces
[:word:] Digits, letters and underscore