Regular Expressions 101

Save & Share

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 (1)

Tools

Sponsors
There are currently no sponsors. Become a sponsor today!
An explanation of your regex will be automatically generated as you type.
Detailed match information will be displayed here automatically.
  • 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
  • Non-capturing group
    (?:...)
  • Capturing group
    (...)
  • 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

Regular Expression
No Match

r"
"
mg

Test String

Code Generator

Generated Code

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?m)^\(?(?P<prefix>(?=1)|\+|(?:0(?:0(?:0|1|9)?|1(?:0|1))?|119))[-. ]?\(?(?P<CC>1([-. ]?)[0-9]{3}|2(?:0|[0-9]{2})|3(?:[0-469]|[0-9]{2})|4(?:[013-9]|[0-9]{2})|5(?:[1-8]|[0-9]{2})|6(?:[0-6]|[0-9]{2})|7(?:[-. ]?[67]|[0-9]{3})|8(?:[1246]|[0-9]{2})|9(?:[0-58]|[0-9]{2}))(?:\)?[-. ])?(?P<number>(?:[0-9]+[-. ]?)+)$" Local $sString = "#phone number testing " & @CRLF & _ "001 37156" & @CRLF & _ "(+213) 44" & @CRLF & _ "00 1-684 11" & @CRLF & _ "000 376 124" & @CRLF & _ "+244 111" & @CRLF & _ "+1-264 111" & @CRLF & _ "010-672-11" & @CRLF & _ "1-268 1111111" & @CRLF & _ "" & @CRLF & _ "+44-111" & @CRLF & _ "44-111" & @CRLF & _ "+1-719-691-8965" & @CRLF & _ "1-719-691-8965" & @CRLF & _ "" & @CRLF & _ "+1719-691-8965" & @CRLF & _ "1719-691-8965" & @CRLF & _ "17196918965" & @CRLF & _ "1.719.691.8965" & @CRLF & _ "1 719 691 8965" & @CRLF & _ "" & @CRLF & _ "0021222" & @CRLF & _ "0011222" & @CRLF & _ "0011222" & @CRLF & _ "" & @CRLF & _ "+401111" & @CRLF & _ "+4241111" & @CRLF & _ "+5111" & @CRLF & _ "" & @CRLF & _ "+3716888" & @CRLF & _ "+36898989" & @CRLF & _ "" & @CRLF & _ "1-803-974-0876" & @CRLF & _ "1-688-944-7218" & @CRLF & _ "1-945-925-9015" & @CRLF & _ "1-644-486-1985" & @CRLF & _ "1-949-959-6957" & @CRLF & _ "1-989-134-4495" & @CRLF & _ "1-789-437-5612" & @CRLF & _ "1-759-923-2805" & @CRLF & _ "1-108-433-5627" & @CRLF & _ "(656) 322-0032" & @CRLF & _ "(318) 842-1324" & @CRLF & _ "(108) 803-8302" & @CRLF & _ "(638) 621-0848" & @CRLF & _ "(258) 568-2801" & @CRLF & _ "(423) 453 2131" & @CRLF & _ "(372) 785.2492" & @CRLF & _ "(189) 151 8444" & @CRLF & _ "(339) 570.2367" & @CRLF & _ "(640) 308-3953" & @CRLF & _ "+561111" & @CRLF & _ "+374" & @CRLF & _ "+297" & @CRLF & _ "+247" & @CRLF & _ "+61" & @CRLF & _ "+672" & @CRLF & _ "+43" & @CRLF & _ "+994" & @CRLF & _ "+1-242" & @CRLF & _ "+973" & @CRLF & _ "+880" & @CRLF & _ "+1-246" & @CRLF & _ "+1-268" & @CRLF & _ "+375" & @CRLF & _ "+32" & @CRLF & _ "+501" & @CRLF & _ "+229" & @CRLF & _ "+1-441" & @CRLF & _ "+975" & @CRLF & _ "+591" & @CRLF & _ "+387" & @CRLF & _ "+267" & @CRLF & _ "+55" & @CRLF & _ "+1-284" & @CRLF & _ "+673" & @CRLF & _ "+359" & @CRLF & _ "+226" & @CRLF & _ "+257" & @CRLF & _ "+855" & @CRLF & _ "+237" & @CRLF & _ "+1" & @CRLF & _ "+238" & @CRLF & _ "+1-345" & @CRLF & _ "+236" & @CRLF & _ "+235" & @CRLF & _ "+64" & @CRLF & _ "+56" & @CRLF & _ "+86" & @CRLF & _ "+53" & @CRLF & _ "" & @CRLF & _ "+61" & @CRLF & _ "+57" & @CRLF & _ "+269" & @CRLF & _ "+242" & @CRLF & _ "+243" & @CRLF & _ "+682" & @CRLF & _ "+506" & @CRLF & _ "+225" & @CRLF & _ "+385" & @CRLF & _ "+53" & @CRLF & _ "+5399" & @CRLF & _ "+599" & @CRLF & _ "+357" & @CRLF & _ "+420" & @CRLF & _ "+45" & @CRLF & _ "+246" & @CRLF & _ "+253" & @CRLF & _ "+1-767" & @CRLF & _ "+1-809" & @CRLF & _ "1-829" & @CRLF & _ "+670" & @CRLF & _ "+56" & @CRLF & _ "+593" & @CRLF & _ "+20" & @CRLF & _ "+503" & @CRLF & _ "+8812" & @CRLF & _ "+8813" & @CRLF & _ "+88213" & @CRLF & _ "+240" & @CRLF & _ "+291" & @CRLF & _ "+372" & @CRLF & _ "+251" & @CRLF & _ "+500" & @CRLF & _ "+298" & @CRLF & _ "+679" & @CRLF & _ "+358" & @CRLF & _ "+33" & @CRLF & _ "+596" & @CRLF & _ "+594" & @CRLF & _ "+689" & @CRLF & _ "+241" & @CRLF & _ "+220" & @CRLF & _ "+995" & @CRLF & _ "+49" & @CRLF & _ "+233" & @CRLF & _ "+350" & @CRLF & _ "+881" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "" & @CRLF & _ "+30" & @CRLF & _ "+299" & @CRLF & _ "+1-473" & @CRLF & _ "+590" & @CRLF & _ "+1-671" & @CRLF & _ "+5399" & @CRLF & _ "+502" & @CRLF & _ "+245" & @CRLF & _ "+224" & @CRLF & _ "+592" & @CRLF & _ "+509" & @CRLF & _ "+504" & @CRLF & _ "+852" & @CRLF & _ "+36" & @CRLF & _ "" & @CRLF & _ "+354" & @CRLF & _ "+91" & @CRLF & _ "+62" & @CRLF & _ "+871" & @CRLF & _ "+874" & @CRLF & _ "+873" & @CRLF & _ "+872" & @CRLF & _ "+870" & @CRLF & _ "" & @CRLF & _ "+800" & @CRLF & _ "+808" & @CRLF & _ "+98" & @CRLF & _ "+964" & @CRLF & _ "+353" & @CRLF & _ "+8816" & @CRLF & _ "+8817" & @CRLF & _ "+972" & @CRLF & _ "+39" & @CRLF & _ "+1-876" & @CRLF & _ "+81" & @CRLF & _ "+962" & @CRLF & _ "+7" & @CRLF & _ "+254" & @CRLF & _ "+686" & @CRLF & _ "+850" & @CRLF & _ "+82" & @CRLF & _ "+965" & @CRLF & _ "+996" & @CRLF & _ "+856" & @CRLF & _ "+371" & @CRLF & _ "+961" & @CRLF & _ "+266" & @CRLF & _ "+231" & @CRLF & _ "+218" & @CRLF & _ "+423" & @CRLF & _ "+370" & @CRLF & _ "+352" & @CRLF & _ "+853" & @CRLF & _ "+389" & @CRLF & _ "+261" & @CRLF & _ "+265" & @CRLF & _ "+60" & @CRLF & _ "+960" & @CRLF & _ "+223" & @CRLF & _ "+356" & @CRLF & _ "+692" & @CRLF & _ "+596" & @CRLF & _ "+222" & @CRLF & _ "+230" & @CRLF & _ "+269" & @CRLF & _ "+52" & @CRLF & _ "+691" & @CRLF & _ "+1-808" & @CRLF & _ "+373" & @CRLF & _ "+377" & @CRLF & _ "+976" & @CRLF & _ "+382" & @CRLF & _ "+1-664" & @CRLF & _ "+212" & @CRLF & _ "+258" & @CRLF & _ "+95" & @CRLF & _ "+264" & @CRLF & _ "+674" & @CRLF & _ "+977" & @CRLF & _ "+31" & @CRLF & _ "+599" & @CRLF & _ "+1-869" & @CRLF & _ "+687" & @CRLF & _ "+64" & @CRLF & _ "+505" & @CRLF & _ "+227" & @CRLF & _ "+234" & @CRLF & _ "+683" & @CRLF & _ "+672" & @CRLF & _ "+1-670" & @CRLF & _ "+1-1" & @CRLF & _ "+47" & @CRLF & _ "+968" & @CRLF & _ "+92" & @CRLF & _ "+680" & @CRLF & _ "+970" & @CRLF & _ "+507" & @CRLF & _ "+675" & @CRLF & _ "+595" & @CRLF & _ "+51" & @CRLF & _ "+63" & @CRLF & _ "+48" & @CRLF & _ "+351" & @CRLF & _ "++1-787 or +1-939" & @CRLF & _ "+974" & @CRLF & _ "+262" & @CRLF & _ "+40" & @CRLF & _ "+7" & @CRLF & _ "+250" & @CRLF & _ "+290" & @CRLF & _ "+1-869" & @CRLF & _ "+1-758" & @CRLF & _ "+508" & @CRLF & _ "+1-784" & @CRLF & _ "+685" & @CRLF & _ "+378" & @CRLF & _ "+239" & @CRLF & _ "+966" & @CRLF & _ "+221" & @CRLF & _ "+381" & @CRLF & _ "+248" & @CRLF & _ "+232" & @CRLF & _ "+65" & @CRLF & _ "+421" & @CRLF & _ "+386" & @CRLF & _ "+677" & @CRLF & _ "+252" & @CRLF & _ "+27" & @CRLF & _ "+34" & @CRLF & _ "+94" & @CRLF & _ "+249" & @CRLF & _ "+597" & @CRLF & _ "+268" & @CRLF & _ "+46" & @CRLF & _ "+41" & @CRLF & _ "+963" & @CRLF & _ "+886" & @CRLF & _ "+992" & @CRLF & _ "+255" & @CRLF & _ "+66" & @CRLF & _ "+88216" & @CRLF & _ "+670" & @CRLF & _ "+228" & @CRLF & _ "+690" & @CRLF & _ "+676" & @CRLF & _ "+1-868" & @CRLF & _ "+216" & @CRLF & _ "+90" & @CRLF & _ "+993" & @CRLF & _ "+1-649" & @CRLF & _ "+688" & @CRLF & _ "+256" & @CRLF & _ "+380" & @CRLF & _ "+971" & @CRLF & _ "+44" & @CRLF & _ "+1" & @CRLF & _ "+1-340" & @CRLF & _ "+878" & @CRLF & _ "+598" & @CRLF & _ "+998" & @CRLF & _ "+678" & @CRLF & _ "++39, +379" & @CRLF & _ "+58" & @CRLF & _ "+84" & @CRLF & _ "+808" & @CRLF & _ "+681" & @CRLF & _ "+967" & @CRLF & _ "+260" & @CRLF & _ "+255" & @CRLF & _ "+263" & @CRLF & _ "" Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH) Local $aFullArray[0] For $i = 0 To UBound($aArray) -1 _ArrayConcatenate($aFullArray, $aArray[$i]) Next $aArray = $aFullArray ; Present the entire match result _ArrayDisplay($aArray, "Result")

Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm