Regular Expressions 101

Save & Share

  • Save Regex
    ctrl+s
  • Update Regex
    ctrl+⇧+s

Flavor

  • PCRE2 (PHP >=7.3)
  • PCRE (PHP <7.3)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java 8

Function

  • Match
  • Substitution
  • List
  • Unit Tests
"
^\+61(?P<test>1800)?(?(test)\d{6}|\d{9})$
"
gm
^ asserts position at start of a line
\+ matches the character + with index 4310 (2B16 or 538) literally (case sensitive)
61
matches the characters 61 literally (case sensitive)
Named Capture Group test
(?P<test>1800)?
? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
1800
matches the characters 1800 literally (case sensitive)
Conditional
(?(test)\d{6}|\d{9})
Conditionally matches one of two options depending on whether the test capturing group matched
If condition is met, match the following regex
\d{6}
\d
matches a digit (equivalent to [0-9])
{6} matches the previous token exactly 6 times
Else match the following regex
\d{9}
\d
matches a digit (equivalent to [0-9])
{9} matches the previous token exactly 9 times
$ asserts position at the end of a line
Global pattern flags
g modifier: global. All matches (don't return after first match)
m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)
Your regular expression does not match the subject string.

Regular Expression
No Match

r"
"
gm

Test String