Reference - What does this regex mean?

ghz 1years ago ⋅ 4441 views

Question

This question's answers are a[community effort](/help/privileges/edit- community-wiki). Edit existing answers to improve this post. It is not currently accepting new answers or interactions.

What is this?

This is a collection of common Q&A. This is also a Community Wiki, so everyone is invited to participate in maintaining it.

Why is this?

regex is suffering from give me ze code type of questions and poor answers with no explanation. This reference is meant to provide links to quality Q&A.

What's the scope?

This reference is meant for the following languages: php, perl, javascript, python, ruby, java, .net.

This might be too broad, but these languages share the same syntax. For specific features there's the tag of the language behind it, example:

  • What are regular expression Balancing Groups? .net

Answer

The Stack Overflow Regular Expressions FAQ

See also a lot of general hints and useful links at the regex tag details page.


Online tutorials

Quantifiers

Character Classes

Escape Sequences

Anchors

anchor

matches

flavors

^

Start of string

Common*

^

Start of line

Commonm

$

End of line

Commonm

$

End of text

Common* except javascript

$

Very end of string

javascript*, phpD

\A

Start of string

Common except javascript

\Z

End of text

Common except javascript python

\Z

Very end of string

python

\z

Very end of string

Common except javascript python

\b

Word boundary

Common

\B

Not a word boundary

Common

\G

End of previous match

Common except javascript, python

Term

Definition

Start of string

At the very start of the string.

Start of line

At the very start of the string, and
after a non-terminal line terminator.

Very end of string

At the very end of the string.

End of text

At the very end of the string, and
at a terminal line terminator.

End of line

At the very end of the string, and
at a line terminator.

Word boundary

At a word character not preceded by a word character, and
at a non-word character not preceded by a non-word character.

End of previous match

At a previously set position, usually where a previous match ended.
At the very start of the string if no position was set.

"Common" refers to the following: icu java javascript .net objective-c pcre perl php python swift ruby

  • Default | m Multi-line mode. | D Dollar end only mode.

Groups

Lookarounds

Modifiers

flag

modifier

flavors

a

ASCII

python

c

current position

perl

e

expression

php perl

g

global

most

i

case-insensitive

most

m

multiline

php perl python javascript .net java

m

(non)multiline

ruby

o

once

perl ruby

r

non-destructive

perl

S

study

php

s

single line

ruby

U

ungreedy

php r

u

unicode

most

x

whitespace-extended

most

y

sticky ↪

javascript

Other:

Common Tasks

Advanced Regex-Fu

Flavor-Specific Information

(Except for those marked with*, this section contains non-Stack Overflow links.)

General information

(Links marked with* are non-Stack Overflow links.)

Examples of regex that can cause regex engine to fail

Tools: Testers and Explainers

(This section contains non-Stack Overflow links.)