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

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

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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions