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

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

/
/
gs

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 = "(?s)(\+\d{1,4}( \d{1,4}){0,2})" Local $sString = "Åland Islands" & @CRLF & _ "+358 18" & @CRLF & _ "Afghanistan" & @CRLF & _ "+93" & @CRLF & _ "Albania" & @CRLF & _ "+355" & @CRLF & _ "Algeria" & @CRLF & _ "+213" & @CRLF & _ "American Samoa" & @CRLF & _ "+1 684" & @CRLF & _ "Andorra" & @CRLF & _ "+376" & @CRLF & _ "Angola" & @CRLF & _ "+244" & @CRLF & _ "Anguilla" & @CRLF & _ "+1 264" & @CRLF & _ "Antigua and Barbuda" & @CRLF & _ "+1 268" & @CRLF & _ "Argentina" & @CRLF & _ "+54" & @CRLF & _ "Armenia" & @CRLF & _ "+374" & @CRLF & _ "Aruba" & @CRLF & _ "+297" & @CRLF & _ "Ascension Island" & @CRLF & _ "+247" & @CRLF & _ "Australia" & @CRLF & _ "+61" & @CRLF & _ "Australian Antarctic Territory" & @CRLF & _ "+672 1" & @CRLF & _ "Austria" & @CRLF & _ "+43" & @CRLF & _ "Azerbaijan" & @CRLF & _ "+994" & @CRLF & _ "Bahamas" & @CRLF & _ "+1 242" & @CRLF & _ "Bahrain" & @CRLF & _ "+973" & @CRLF & _ "Bangladesh" & @CRLF & _ "+880" & @CRLF & _ "Barbados" & @CRLF & _ "+1 246" & @CRLF & _ "Belarus" & @CRLF & _ "+375" & @CRLF & _ "Belgium" & @CRLF & _ "+32" & @CRLF & _ "Belize" & @CRLF & _ "+501" & @CRLF & _ "Benin" & @CRLF & _ "+229" & @CRLF & _ "Bermuda" & @CRLF & _ "+1 441" & @CRLF & _ "Bhutan" & @CRLF & _ "+975" & @CRLF & _ "Bolivia" & @CRLF & _ "+591" & @CRLF & _ "Bosnia and Herzegovina" & @CRLF & _ "+387" & @CRLF & _ "Botswana" & @CRLF & _ "+267" & @CRLF & _ "Bouvet Island" & @CRLF & _ "+47" & @CRLF & _ "Brazil" & @CRLF & _ "+55" & @CRLF & _ "British Indian Ocean Territory" & @CRLF & _ "+246" & @CRLF & _ "British Virgin Islands" & @CRLF & _ "+1 284" & @CRLF & _ "Brunei" & @CRLF & _ "+673" & @CRLF & _ "Bulgaria" & @CRLF & _ "+359" & @CRLF & _ "Burkina Faso" & @CRLF & _ "+226" & @CRLF & _ "Burundi" & @CRLF & _ "+257" & @CRLF & _ "Cambodia" & @CRLF & _ "+855" & @CRLF & _ "Cameroon" & @CRLF & _ "+237" & @CRLF & _ "Canada" & @CRLF & _ "+1" & @CRLF & _ "Cape Verde" & @CRLF & _ "+238" & @CRLF & _ "Caribbean Netherlands" & @CRLF & _ "+599" & @CRLF & _ "Cayman Islands" & @CRLF & _ "+1 345" & @CRLF & _ "Central African Republic" & @CRLF & _ "+236" & @CRLF & _ "Chad" & @CRLF & _ "+235" & @CRLF & _ "Chile" & @CRLF & _ "+56" & @CRLF & _ "China" & @CRLF & _ "+86" & @CRLF & _ "Christmas Island" & @CRLF & _ "+61 89164" & @CRLF & _ "Cocos (Keeling) Islands" & @CRLF & _ "+61 89162" & @CRLF & _ "Colombia" & @CRLF & _ "+57" & @CRLF & _ "Comoros" & @CRLF & _ "+269" & @CRLF & _ "Cook Islands" & @CRLF & _ "+682" & @CRLF & _ "Costa Rica" & @CRLF & _ "+506" & @CRLF & _ "Croatia" & @CRLF & _ "+385" & @CRLF & _ "Cuba" & @CRLF & _ "+53" & @CRLF & _ "Curaçao" & @CRLF & _ "+599 9" & @CRLF & _ "Cyprus" & @CRLF & _ "+357" & @CRLF & _ "Czech Republic" & @CRLF & _ "+420" & @CRLF & _ "Democratic Republic of the Congo" & @CRLF & _ "+243" & @CRLF & _ "Denmark" & @CRLF & _ "+45" & @CRLF & _ "Djibouti" & @CRLF & _ "+253" & @CRLF & _ "Dominica" & @CRLF & _ "+1 767" & @CRLF & _ "Dominican Republic" & @CRLF & _ "+1 809" & @CRLF & _ "+1 829" & @CRLF & _ "+1 849" & @CRLF & _ "East Timor" & @CRLF & _ "+670" & @CRLF & _ "Ecuador" & @CRLF & _ "+593" & @CRLF & _ "Egypt" & @CRLF & _ "+20" & @CRLF & _ "El Salvador" & @CRLF & _ "+503" & @CRLF & _ "Equatorial Guinea" & @CRLF & _ "+240" & @CRLF & _ "Eritrea" & @CRLF & _ "+291" & @CRLF & _ "Estonia" & @CRLF & _ "+372" & @CRLF & _ "Eswatini" & @CRLF & _ "+268" & @CRLF & _ "Ethiopia" & @CRLF & _ "+251" & @CRLF & _ "Falkland Islands(Malvinas)" & @CRLF & _ "+500" & @CRLF & _ "Faroe Islands" & @CRLF & _ "+298" & @CRLF & _ "Fiji" & @CRLF & _ "+679" & @CRLF & _ "Finland" & @CRLF & _ "+358" & @CRLF & _ "France" & @CRLF & _ "+33" & @CRLF & _ "French Guiana" & @CRLF & _ "+594" & @CRLF & _ "French Polynesia" & @CRLF & _ "+689" & @CRLF & _ "French Southern and Antarctic Lands" & @CRLF & _ "+262" & @CRLF & _ "Gabon" & @CRLF & _ "+241" & @CRLF & _ "Gambia" & @CRLF & _ "+220" & @CRLF & _ "Georgia" & @CRLF & _ "+995" & @CRLF & _ "Germany" & @CRLF & _ "+49" & @CRLF & _ "Ghana" & @CRLF & _ "+233" & @CRLF & _ "Gibraltar" & @CRLF & _ "+350" & @CRLF & _ "Greece" & @CRLF & _ "+30" & @CRLF & _ "Greenland" & @CRLF & _ "+299" & @CRLF & _ "Grenada" & @CRLF & _ "+1 473" & @CRLF & _ "Guadeloupe" & @CRLF & _ "+590" & @CRLF & _ "Guam" & @CRLF & _ "+1 671" & @CRLF & _ "Guatemala" & @CRLF & _ "+502" & @CRLF & _ "Guernsey" & @CRLF & _ "+44 1481" & @CRLF & _ "+44 7781" & @CRLF & _ "+44 7839" & @CRLF & _ "+44 7911" & @CRLF & _ "Guinea" & @CRLF & _ "+224" & @CRLF & _ "Guinea-Bissau" & @CRLF & _ "+245" & @CRLF & _ "Guyana" & @CRLF & _ "+592" & @CRLF & _ "Haiti" & @CRLF & _ "+509" & @CRLF & _ "Heard Island and McDonald Islands" & @CRLF & _ "+1 672" & @CRLF & _ "Honduras" & @CRLF & _ "+504" & @CRLF & _ "Hong Kong" & @CRLF & _ "+852" & @CRLF & _ "Hungary" & @CRLF & _ "+36" & @CRLF & _ "Iceland" & @CRLF & _ "+354" & @CRLF & _ "India" & @CRLF & _ "+91" & @CRLF & _ "Indonesia" & @CRLF & _ "+62" & @CRLF & _ "Iran" & @CRLF & _ "+98" & @CRLF & _ "Iraq" & @CRLF & _ "+964" & @CRLF & _ "Ireland" & @CRLF & _ "+353" & @CRLF & _ "Isle of Man" & @CRLF & _ "+44 1624" & @CRLF & _ "+44 7524" & @CRLF & _ "+44 7624" & @CRLF & _ "+44 7924" & @CRLF & _ "Israel" & @CRLF & _ "+972" & @CRLF & _ "Italy" & @CRLF & _ "+39" & @CRLF & _ "Ivory Coast" & @CRLF & _ "+225" & @CRLF & _ "Jamaica" & @CRLF & _ "+1 876" & @CRLF & _ "Japan" & @CRLF & _ "+81" & @CRLF & _ "Jersey" & @CRLF & _ "+44 1534" & @CRLF & _ "Jordan" & @CRLF & _ "+962" & @CRLF & _ "Kazakhstan" & @CRLF & _ "+7 6" & @CRLF & _ "+7 7" & @CRLF & _ "Kenya" & @CRLF & _ "+254" & @CRLF & _ "Kiribati" & @CRLF & _ "+686" & @CRLF & _ "Kosovo" & @CRLF & _ "+383" & @CRLF & _ "Kuwait" & @CRLF & _ "+965" & @CRLF & _ "Kyrgyzstan" & @CRLF & _ "+996" & @CRLF & _ "Laos" & @CRLF & _ "+856" & @CRLF & _ "Latvia" & @CRLF & _ "+371" & @CRLF & _ "Lebanon" & @CRLF & _ "+961" & @CRLF & _ "Lesotho" & @CRLF & _ "+266" & @CRLF & _ "Liberia" & @CRLF & _ "+231" & @CRLF & _ "Libya" & @CRLF & _ "+218" & @CRLF & _ "Liechtenstein" & @CRLF & _ "+423" & @CRLF & _ "Lithuania" & @CRLF & _ "+370" & @CRLF & _ "Luxembourg" & @CRLF & _ "+352" & @CRLF & _ "Macao" & @CRLF & _ "+853" & @CRLF & _ "Madagascar" & @CRLF & _ "+261" & @CRLF & _ "Malawi" & @CRLF & _ "+265" & @CRLF & _ "Malaysia" & @CRLF & _ "+60" & @CRLF & _ "Maldives" & @CRLF & _ "+960" & @CRLF & _ "Mali" & @CRLF & _ "+223" & @CRLF & _ "Malta" & @CRLF & _ "+356" & @CRLF & _ "Marshall Islands" & @CRLF & _ "+692" & @CRLF & _ "Martinique" & @CRLF & _ "+596" & @CRLF & _ "Mauritania" & @CRLF & _ "+222" & @CRLF & _ "Mauritius" & @CRLF & _ "+230" & @CRLF & _ "Mayotte" & @CRLF & _ "+262 269" & @CRLF & _ "+262 639" & @CRLF & _ "Mexico" & @CRLF & _ "+52" & @CRLF & _ "Micronesia" & @CRLF & _ "+691" & @CRLF & _ "Moldova" & @CRLF & _ "+373" & @CRLF & _ "Monaco" & @CRLF & _ "+377" & @CRLF & _ "Mongolia" & @CRLF & _ "+976" & @CRLF & _ "Montenegro" & @CRLF & _ "+382" & @CRLF & _ "Montserrat" & @CRLF & _ "+1 664" & @CRLF & _ "Morocco" & @CRLF & _ "+212" & @CRLF & _ "Mozambique" & @CRLF & _ "+258" & @CRLF & _ "Myanmar" & @CRLF & _ "+95" & @CRLF & _ "Namibia" & @CRLF & _ "+264" & @CRLF & _ "Nauru" & @CRLF & _ "+674" & @CRLF & _ "Nepal" & @CRLF & _ "+977" & @CRLF & _ "Netherlands" & @CRLF & _ "+31" & @CRLF & _ "Netherlands Antilles" & @CRLF & _ "+599" & @CRLF & _ "New Caledonia" & @CRLF & _ "+687" & @CRLF & _ "New Zealand" & @CRLF & _ "+64" & @CRLF & _ "Nicaragua" & @CRLF & _ "+505" & @CRLF & _ "Niger" & @CRLF & _ "+227" & @CRLF & _ "Nigeria" & @CRLF & _ "+234" & @CRLF & _ "Niue" & @CRLF & _ "+683" & @CRLF & _ "Norfolk Island" & @CRLF & _ "+672 3" & @CRLF & _ "North Korea" & @CRLF & _ "+850" & @CRLF & _ "North Macedonia" & @CRLF & _ "+389" & @CRLF & _ "Northern Ireland" & @CRLF & _ "+44 28" & @CRLF & _ "Northern Mariana Islands" & @CRLF & _ "+1 670" & @CRLF & _ "Norway" & @CRLF & _ "+47" & @CRLF & _ "Oman" & @CRLF & _ "+968" & @CRLF & _ "Pakistan" & @CRLF & _ "+92" & @CRLF & _ "Palau" & @CRLF & _ "+680" & @CRLF & _ "Palestine" & @CRLF & _ "+970" & @CRLF & _ "Panama" & @CRLF & _ "+507" & @CRLF & _ "Papua New Guinea" & @CRLF & _ "+675" & @CRLF & _ "Paraguay" & @CRLF & _ "+595" & @CRLF & _ "Peru" & @CRLF & _ "+51" & @CRLF & _ "Philippines" & @CRLF & _ "+63" & @CRLF & _ "Pitcairn" & @CRLF & _ "+64" & @CRLF & _ "Poland" & @CRLF & _ "+48" & @CRLF & _ "Portugal" & @CRLF & _ "+351" & @CRLF & _ "Puerto Rico" & @CRLF & _ "+1 787" & @CRLF & _ "+1 939" & @CRLF & _ "Qatar" & @CRLF & _ "+974" & @CRLF & _ "Réunion" & @CRLF & _ "+262" & @CRLF & _ "Republic of the Congo" & @CRLF & _ "+242" & @CRLF & _ "Romania" & @CRLF & _ "+40" & @CRLF & _ "Russia" & @CRLF & _ "+7" & @CRLF & _ "Rwanda" & @CRLF & _ "+250" & @CRLF & _ "Saint Barthélemy" & @CRLF & _ "+590" & @CRLF & _ "Saint Helena" & @CRLF & _ "+290" & @CRLF & _ "Saint Kitts and Nevis" & @CRLF & _ "+1 869" & @CRLF & _ "Saint Lucia" & @CRLF & _ "+1 758" & @CRLF & _ "Saint Martin(French part)" & @CRLF & _ "+590" & @CRLF & _ "Saint Pierre and Miquelon" & @CRLF & _ "+508" & @CRLF & _ "Saint Vincent and the Grenadines" & @CRLF & _ "+1 784" & @CRLF & _ "Samoa" & @CRLF & _ "+685" & @CRLF & _ "San Marino" & @CRLF & _ "+378" & @CRLF & _ "Sao Tome and Principe" & @CRLF & _ "+239" & @CRLF & _ "Saudi Arabia" & @CRLF & _ "+966" & @CRLF & _ "Senegal" & @CRLF & _ "+221" & @CRLF & _ "Serbia" & @CRLF & _ "+381" & @CRLF & _ "Seychelles" & @CRLF & _ "+248" & @CRLF & _ "Sierra Leone" & @CRLF & _ "+232" & @CRLF & _ "Singapore" & @CRLF & _ "+65" & @CRLF & _ "Slovakia" & @CRLF & _ "+421" & @CRLF & _ "Slovenia" & @CRLF & _ "+386" & @CRLF & _ "Solomon Islands" & @CRLF & _ "+677" & @CRLF & _ "Somalia" & @CRLF & _ "+252" & @CRLF & _ "South Africa" & @CRLF & _ "+27" & @CRLF & _ "South Georgia and the South Sandwich Islands" & @CRLF & _ "+500" & @CRLF & _ "South Korea" & @CRLF & _ "+82" & @CRLF & _ "South Sudan" & @CRLF & _ "+211" & @CRLF & _ "Spain" & @CRLF & _ "+34" & @CRLF & _ "Sri Lanka" & @CRLF & _ "+94" & @CRLF & _ "Sudan" & @CRLF & _ "+249" & @CRLF & _ "Suriname" & @CRLF & _ "+597" & @CRLF & _ "Svalbard and Jan Mayen" & @CRLF & _ "+47 79" & @CRLF & _ "Sweden" & @CRLF & _ "+46" & @CRLF & _ "Switzerland" & @CRLF & _ "+41" & @CRLF & _ "Syria" & @CRLF & _ "+963" & @CRLF & _ "Taiwan" & @CRLF & _ "+886" & @CRLF & _ "Tajikistan" & @CRLF & _ "+992" & @CRLF & _ "Tanzania" & @CRLF & _ "+255" & @CRLF & _ "Thailand" & @CRLF & _ "+66" & @CRLF & _ "Togo" & @CRLF & _ "+228" & @CRLF & _ "Tokelau" & @CRLF & _ "+690" & @CRLF & _ "Tonga" & @CRLF & _ "+676" & @CRLF & _ "Trinidad and Tobago" & @CRLF & _ "+1 868" & @CRLF & _ "Tunisia" & @CRLF & _ "+216" & @CRLF & _ "Turkey" & @CRLF & _ "+90" & @CRLF & _ "Turkmenistan" & @CRLF & _ "+993" & @CRLF & _ "Turks and Caicos Islands" & @CRLF & _ "+1 649" & @CRLF & _ "Tuvalu" & @CRLF & _ "+688" & @CRLF & _ "Uganda" & @CRLF & _ "+256" & @CRLF & _ "Ukraine" & @CRLF & _ "+380" & @CRLF & _ "United Arab Emirates" & @CRLF & _ "+971" & @CRLF & _ "United Kingdom" & @CRLF & _ "+44" & @CRLF & _ "United States" & @CRLF & _ "+1" & @CRLF & _ "United States Minor Outlying Islands" & @CRLF & _ "+246" & @CRLF & _ "Uruguay" & @CRLF & _ "+598" & @CRLF & _ "Uzbekistan" & @CRLF & _ "+998" & @CRLF & _ "Vanuatu" & @CRLF & _ "+678" & @CRLF & _ "Vatican City" & @CRLF & _ "+379" & @CRLF & _ "Venezuela" & @CRLF & _ "+58" & @CRLF & _ "Vietnam" & @CRLF & _ "+84" & @CRLF & _ "Virgin Islands, U.S." & @CRLF & _ "+1 340" & @CRLF & _ "Wallis and Futuna" & @CRLF & _ "+681" & @CRLF & _ "Western Sahara" & @CRLF & _ "+212" & @CRLF & _ "Yemen" & @CRLF & _ "+967" & @CRLF & _ "Zambia" & @CRLF & _ "+260" & @CRLF & _ "Zimbabwe" & @CRLF & _ "+263" 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