# Regular Expressions 101

## Flavor

• PCRE2 (PHP >=7.3)
• PCRE (PHP <7.3)
• ECMAScript (JavaScript)
• Python
• Golang
• Java 8
• .NET 7.0 (C#)
• Rust
• Regex Flavor Guide

## Function

• Match
• Substitution
• List
• Unit Tests (11)

## Tools

An explanation of your regex will be automatically generated as you type.
• All Tokens
• Common Tokens
• General Tokens
• Anchors
• Meta Sequences
• Quantifiers
• Group Constructs
• Character Classes
• Flags/Modifiers
• Substitution
• A single character of: a, b or c
[abc]
• A character except: a, b or c
[^abc]
• A character in the range: a-z
[a-z]
• A character not in the range: a-z
[^a-z]
• A character in the range: a-z or A-Z
[a-zA-Z]
• Any single character
.
• Alternate - match either a or b
a|b
• Any whitespace character
\s
• Any non-whitespace character
\S
• Any digit
\d
• Any non-digit
\D
• Any word character
\w
• Any non-word character
\W
• Match everything enclosed
(?:...)
• Capture everything enclosed
(...)
• Zero or one of a
a?
• Zero or more of a
a*
• One or more of a
a+
• Exactly 3 of a
a{3}
• 3 or more of a
a{3,}
• Between 3 and 6 of a
a{3,6}
• Start of string
^
• End of string
\$
• A word boundary
\b
• Non-word boundary
\B

/
/

## Unit Tests

given the string θσερ@εχαμπλε.ψομ assert that regex does match
given the string юзер@екзампл.ком assert that regex does match
given the string राम@मोहन.ईन्फो assert that regex does match
given the string 伊昭傑@郵件.商務 assert that regex does match
given the string "Joe.\\Blow"@example.com assert that regex does match
given the string "Fred Bloggs"@example.com assert that regex does match
given the string "Abc@def"@example.com assert that regex does match
given the string !#\$%&'*+-/=?^_`.{|}~@example.com assert that regex does match
given the string Abc.123@example.com assert that regex does match
given the string user+mailbox/department=shipping@example… assert that regex does match
given the string Abc@example.com assert that regex does match