Regular Expressions Cheatsheet

This site is a reference for Regular Expressions (RegEx)

Last updated on 09 March, 2021 at 13:59:41 Optimized for

Regular Expressions are powerful sequences of characters that define search patterns. Regular Expressions are used in search engines, text processing tools like Sed and Awk, for lexical analysis and a lot more. The concept of Regular Expressions arose around the 1950s and later saw heavy use with the introduction of UNIX text processing tools in the 1980s.

Website logo
For the full experience we recommend viewing this website on a desktop or tablet.

Be Aware

Syntax and Flavors

There are serveral flavors (different syntax) of RegExp with the two most common being POSIX and PCRE (Perl Compatible Regular Expressions). The IEEE POSIX standard has three sets of compliance which are Basic Regular Expression (BRE), Extended Regular Expressions (ERE) and Simple Regular Expressions (SRE).

Regex Examples

Regular Expressions

Expression Description
^(?:[\t ]*(?:\r?\n|\r))+

Match all empty lines

Anchors

Syntax Description
^

Start of string, or start of line in multi-line pattern

\A

Start of string

$

End of string, or end of line in multi-line pattern

\Z

End of string

\b

Word boundary

\B

Not word boundary

\<

Start of word

\>

End of word

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

Hexadecimal 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:]

Hexadecimal digits

[:punct:]

Punctuation

[:blank:]

Space and tab

[:space:]

Blank characters

[:cntrl:]

Control characters

[:graph:]

Printed characters

[:print:]

Printed characters and spaces

[:word:]

Digits, letters and underscore

Assertions

Syntax Description
?=

Lookahead assertion

?!

Negative lookahead

?<=

Lookbehind assertion

?!=

Negative lookbehind

?<!

Negative lookbehind

?>

Once-only Subexpression

?()

Condition [if then]

?()|

Condition [if then else]

?#

Comment

Quanti­fiers

Syntax Description
*

0 or more

+

1 or more

?

0 or 1

{3}

Exactly 3

{3,}

3 or more

{,3}

Less than 3

{3,5}

3, 4 or 5

Escape Sequences

^ [ . $ { * ( \ + ) | ? < > are all special characters that need to be escaped if you wish to target (i.e. include) them in your search results
Syntax Description
\

Escape following character

\Q

Begin literal sequence

\E

End literal sequence

Special Characters

Syntax Description
\n

New line

\r

Carriage return

\t

Tab

\v

Vertical tab

\f

Form feed

\xxx

Octal character xxx

\xhh

Hex character hh

Groups and Ranges

Syntax Description
.

Any character except new line ( )

(a|b)

A or b

(...)

Capture group

(?:...)

Passive (non-capturing) 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

\x

Group/subpattern number "x"

Pattern Modifiers

All modifiers (except g) in this table are Perl Compliant Regex (PCRE) modifiers and not POSIX compliant
Syntax Description
g

Global match

i

Case-insensitive

m

Multiple lines

s

Treat string as single line

x

Allow comments and whitespace in pattern

e

Evaluate replacement

U

Ungreedy pattern

String Replacement

Syntax Description
$n

Nth non-pa­ssive group

$2

"xyz" in /^(abc(xyz))$/

$1

"xyz" in /^(?:abc)(xyz)$/

$`

Before matched string

$'

After matched string

$+

Last matched string

$&

Entire matched string