Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
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]
  • Character class intersection
    [\w&&[^\d]]
  • 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
Processing...

Test String

Code Generator

Generated Code

import re regex = re.compile(r"\S[A-Za-zรฉรฃ.].*(?=\s\+[0-9])", flags=re.MULTILINE) test_str = ("๐Ÿ‡ฆ๐Ÿ‡ซ Afghanistan +93\n" "๐Ÿ‡ฆ๐Ÿ‡ฝ ร…land Islands +358\n" "๐Ÿ‡ฆ๐Ÿ‡ฑ Albania +355\n" "๐Ÿ‡ฉ๐Ÿ‡ฟ Algeria +213\n" "๐Ÿ‡ฆ๐Ÿ‡ธ American Samoa +1684\n" "๐Ÿ‡ฆ๐Ÿ‡ฉ Andorra +376\n" "๐Ÿ‡ฆ๐Ÿ‡ด Angola +244\n" "๐Ÿ‡ฆ๐Ÿ‡ฎ Anguilla +1264\n" "๐Ÿ‡ฆ๐Ÿ‡ฌ Antigua & Barbuda +1268\n" "๐Ÿ‡ฆ๐Ÿ‡ท Argentina +54\n" "๐Ÿ‡ฆ๐Ÿ‡ฒ Armenia +374\n" "๐Ÿ‡ฆ๐Ÿ‡ผ Aruba +297\n" "๐Ÿ‡ฆ๐Ÿ‡บ Australia +61\n" "๐Ÿ‡ฆ๐Ÿ‡น Austria +43\n" "๐Ÿ‡ฆ๐Ÿ‡ฟ Azerbaijan +994\n" "๐Ÿ‡ง๐Ÿ‡ธ Bahamas +1242\n" "๐Ÿ‡ง๐Ÿ‡ญ Bahrain +973\n" "๐Ÿ‡ง๐Ÿ‡ฉ Bangladesh +880\n" "๐Ÿ‡ง๐Ÿ‡ง Barbados +1246\n" "๐Ÿ‡ง๐Ÿ‡พ Belarus +375\n" "๐Ÿ‡ง๐Ÿ‡ช Belgium +32\n" "๐Ÿ‡ง๐Ÿ‡ฟ Belize +501\n" "๐Ÿ‡ง๐Ÿ‡ฏ Benin +229\n" "๐Ÿ‡ง๐Ÿ‡ฒ Bermuda +1441\n" "๐Ÿ‡ง๐Ÿ‡น Bhutan +975\n" "๐Ÿ‡ง๐Ÿ‡ด Bolivia +591\n" "๐Ÿ‡ง๐Ÿ‡ฆ Bosnia & Herzegovina +387\n" "๐Ÿ‡ง๐Ÿ‡ผ Botswana +267\n" "๐Ÿ‡ง๐Ÿ‡ท Brazil +55\n" "๐Ÿ‡ฎ๐Ÿ‡ด British Indian Ocean Territory +246\n" "๐Ÿ‡ป๐Ÿ‡ฌ British Virgin Islands +1284\n" "๐Ÿ‡ง๐Ÿ‡ณ Brunei +673\n" "๐Ÿ‡ง๐Ÿ‡ฌ Bulgaria +359\n" "๐Ÿ‡ง๐Ÿ‡ซ Burkina Faso +226\n" "๐Ÿ‡ง๐Ÿ‡ฎ Burundi +257\n" "๐Ÿ‡ฐ๐Ÿ‡ญ Cambodia +855\n" "๐Ÿ‡จ๐Ÿ‡ฒ Cameroon +237\n" "๐Ÿ‡จ๐Ÿ‡ฆ Canada +1\n" "๐Ÿ‡จ๐Ÿ‡ป Cape Verde +238\n" "๐Ÿ‡ณ๐Ÿ‡ฑ Carribbean Netherlands +599\n" "๐Ÿ‡ฐ๐Ÿ‡พ Cayman Islands +1345\n" "๐Ÿ‡จ๐Ÿ‡ซ Central African Republic +236\n" "๐Ÿ‡น๐Ÿ‡ฉ Chad +235\n" "๐Ÿ‡จ๐Ÿ‡ฑ Chile +56\n" "๐Ÿ‡จ๐Ÿ‡ณ China +86\n" "๐Ÿ‡จ๐Ÿ‡ฝ Christmas Islands +61\n" "๐Ÿ‡จ๐Ÿ‡จ Cocos Islands +61\n" "๐Ÿ‡จ๐Ÿ‡ด Colombia +57\n" "๐Ÿ‡ฐ๐Ÿ‡ฒ Comoros +269\n" "๐Ÿ‡จ๐Ÿ‡ฉ Congo-Kinshasa +243\n" "๐Ÿ‡จ๐Ÿ‡ฌ Congo-Brazzaville +242\n" "๐Ÿ‡จ๐Ÿ‡ฐ Cook Islands +682\n" "๐Ÿ‡จ๐Ÿ‡ท Costa Rica +506\n" "๐Ÿ‡ญ๐Ÿ‡ท Croatia +385\n" "๐Ÿ‡จ๐Ÿ‡บ Cuba +53\n" "๐Ÿ‡จ๐Ÿ‡ผ Curaรงao +599\n" "๐Ÿ‡จ๐Ÿ‡พ Cyprus +357\n" "๐Ÿ‡จ๐Ÿ‡ฟ Czechia +420\n" "๐Ÿ‡ฉ๐Ÿ‡ฐ Denmark +45\n" "๐Ÿ‡ฉ๐Ÿ‡ฏ Djibouti +253\n" "๐Ÿ‡ฉ๐Ÿ‡ฒ Dominica +1767\n" "๐Ÿ‡ฉ๐Ÿ‡ด Dominican Republic +1\n" "๐Ÿ‡ช๐Ÿ‡จ Ecuador +593\n" "๐Ÿ‡ช๐Ÿ‡ฌ Egypt +20\n" "๐Ÿ‡ธ๐Ÿ‡ป El Salvador +503\n" "๐Ÿ‡ฌ๐Ÿ‡ถ Equatorial Guinea +240\n" "๐Ÿ‡ช๐Ÿ‡ท Eritrea +291\n" "๐Ÿ‡ช๐Ÿ‡ช Estonia +372\n" "๐Ÿ‡ช๐Ÿ‡น Ethiopia +251\n" "๐Ÿ‡ซ๐Ÿ‡ฐ Falkland Islands +500\n" "๐Ÿ‡ซ๐Ÿ‡ด Faroe Islands +298\n" "๐Ÿ‡ซ๐Ÿ‡ฏ Fiji +679\n" "๐Ÿ‡ซ๐Ÿ‡ฎ Finland +358\n" "๐Ÿ‡ซ๐Ÿ‡ท France +33\n" "๐Ÿ‡ฌ๐Ÿ‡ซ French Guiana +594\n" "๐Ÿ‡ต๐Ÿ‡ซ French Polynesia +689\n" "๐Ÿ‡ฌ๐Ÿ‡ฆ Gabon +241\n" "๐Ÿ‡ฌ๐Ÿ‡ฒ Gambia +220\n" "๐Ÿ‡ฌ๐Ÿ‡ช Georgia +995\n" "๐Ÿ‡ฉ๐Ÿ‡ช Germany +49\n" "๐Ÿ‡ฌ๐Ÿ‡ญ Ghana +233\n" "๐Ÿ‡ฌ๐Ÿ‡ฎ Gibraltar +350\n" "๐Ÿ‡ฌ๐Ÿ‡ท Greece +30\n" "๐Ÿ‡ฌ๐Ÿ‡ฑ Greenland +299\n" "๐Ÿ‡ฌ๐Ÿ‡ฉ Grenada +1473\n" "๐Ÿ‡ฌ๐Ÿ‡ต Guadeloupe +590\n" "๐Ÿ‡ฌ๐Ÿ‡บ Guam +1671\n" "๐Ÿ‡ฌ๐Ÿ‡น Guatemala +502\n" "๐Ÿ‡ฌ๐Ÿ‡ฌ Guernsey +44\n" "๐Ÿ‡ฌ๐Ÿ‡ณ Guinea +224\n" "๐Ÿ‡ฌ๐Ÿ‡ผ Guinea-Bissau +245\n" "๐Ÿ‡ฌ๐Ÿ‡พ Guyana +592\n" "๐Ÿ‡ญ๐Ÿ‡น Haiti +509\n" "๐Ÿ‡ญ๐Ÿ‡ณ Honduras +504\n" "๐Ÿ‡ญ๐Ÿ‡ฐ Hong Kong +852\n" "๐Ÿ‡ญ๐Ÿ‡บ Hungary +36\n" "๐Ÿ‡ฎ๐Ÿ‡ธ Iceland +354\n" "๐Ÿ‡ฎ๐Ÿ‡ณ India +91\n" "๐Ÿ‡ฎ๐Ÿ‡ฉ Indonesia +62\n" "๐Ÿ‡ฎ๐Ÿ‡ท Iran +98\n" "๐Ÿ‡ฎ๐Ÿ‡ถ Iraq +964\n" "๐Ÿ‡ฎ๐Ÿ‡ช Ireland +353\n" "๐Ÿ‡ฎ๐Ÿ‡ฒ Isle of Man +44\n" "๐Ÿ‡ฎ๐Ÿ‡ฑ Israel +972\n" "๐Ÿ‡ฎ๐Ÿ‡น Italy +39\n" "๐Ÿ‡จ๐Ÿ‡ฎ Ivory Coast +225\n" "๐Ÿ‡ฏ๐Ÿ‡ฒ Jamaica +1\n" "๐Ÿ‡ฏ๐Ÿ‡ต Japan +81\n" "๐Ÿ‡ฏ๐Ÿ‡ช Jersey +44\n" "๐Ÿ‡ฏ๐Ÿ‡ด Jordan +962\n" "๐Ÿ‡ฐ๐Ÿ‡ฟ Kazakhstan +7\n" "๐Ÿ‡ฐ๐Ÿ‡ช Kenya +254\n" "๐Ÿ‡ฐ๐Ÿ‡ฎ Kiribati +686\n" "๐Ÿ‡ฝ๐Ÿ‡ฐ Kosovo +383\n" "๐Ÿ‡ฐ๐Ÿ‡ผ Kuwait +965\n" "๐Ÿ‡ฐ๐Ÿ‡ฌ Kyrgyzstan +996\n" "๐Ÿ‡ฑ๐Ÿ‡ฆ Laos +856\n" "๐Ÿ‡ฑ๐Ÿ‡ป Latvia +371\n" "๐Ÿ‡ฑ๐Ÿ‡ง Lebanon +961\n" "๐Ÿ‡ฑ๐Ÿ‡ธ Lesotho +266\n" "๐Ÿ‡ฑ๐Ÿ‡ท Liberia +231\n" "๐Ÿ‡ฑ๐Ÿ‡พ Libya +218\n" "๐Ÿ‡ฑ๐Ÿ‡ฎ Liechtenstein +423\n" "๐Ÿ‡ฑ๐Ÿ‡น Lithuania +370\n" "๐Ÿ‡ฑ๐Ÿ‡บ Luxembourg +352\n" "๐Ÿ‡ฒ๐Ÿ‡ด Macau +853\n" "๐Ÿ‡ฒ๐Ÿ‡ฌ Madagascar +261\n" "๐Ÿ‡ฒ๐Ÿ‡ผ Malawi +265\n" "๐Ÿ‡ฒ๐Ÿ‡พ Malaysia +60\n" "๐Ÿ‡ฒ๐Ÿ‡ป Maldives +960\n" "๐Ÿ‡ฒ๐Ÿ‡ฑ Mali +223\n" "๐Ÿ‡ฒ๐Ÿ‡น Malta +356\n" "๐Ÿ‡ฒ๐Ÿ‡ญ Marshall Islands +692\n" "๐Ÿ‡ฒ๐Ÿ‡ถ Martinique +596\n" "๐Ÿ‡ฒ๐Ÿ‡ท Mauritania +222\n" "๐Ÿ‡ฒ๐Ÿ‡บ Mauritius +230\n" "๐Ÿ‡พ๐Ÿ‡น Mayotte +262\n" "๐Ÿ‡ฒ๐Ÿ‡ฝ Mexico +52\n" "๐Ÿ‡ซ๐Ÿ‡ฒ Micronesia +691\n" "๐Ÿ‡ฒ๐Ÿ‡ฉ Moldova +373\n" "๐Ÿ‡ฒ๐Ÿ‡จ Monaco +377\n" "๐Ÿ‡ฒ๐Ÿ‡ณ Mongolia +976\n" "๐Ÿ‡ฒ๐Ÿ‡ช Montenegro +382\n" "๐Ÿ‡ฒ๐Ÿ‡ธ Montserrat +1664\n" "๐Ÿ‡ฒ๐Ÿ‡ฆ Morocco +212\n" "๐Ÿ‡ฒ๐Ÿ‡ฟ Mozambique +258\n" "๐Ÿ‡ฒ๐Ÿ‡ฒ Myanmar +95\n" "๐Ÿ‡ณ๐Ÿ‡ฆ Namibia +264\n" "๐Ÿ‡ณ๐Ÿ‡ท Nauru +674\n" "๐Ÿ‡ณ๐Ÿ‡ต Nepal +977\n" "๐Ÿ‡ณ๐Ÿ‡ฑ Netherlands +31\n" "๐Ÿ‡ณ๐Ÿ‡จ New Caledonia +687\n" "๐Ÿ‡ณ๐Ÿ‡ฟ New Zealand +64\n" "๐Ÿ‡ณ๐Ÿ‡ฎ Nicaragua +505\n" "๐Ÿ‡ณ๐Ÿ‡ช Niger +227\n" "๐Ÿ‡ณ๐Ÿ‡ฌ Nigeria +234\n" "๐Ÿ‡ณ๐Ÿ‡บ Niue +683\n" "๐Ÿ‡ณ๐Ÿ‡ซ Norfolk Island +6723\n" "๐Ÿ‡ฐ๐Ÿ‡ต North Korea +850\n" "๐Ÿ‡ฒ๐Ÿ‡ฐ North Macedonia +389\n" "๐Ÿ‡ฒ๐Ÿ‡ต Northern Mariana Islands +1670\n" "๐Ÿ‡ณ๐Ÿ‡ด Norway +47\n" "๐Ÿ‡ด๐Ÿ‡ฒ Oman +968\n" "๐Ÿ‡ต๐Ÿ‡ฐ Pakistan +92\n" "๐Ÿ‡ต๐Ÿ‡ผ Palau +680\n" "๐Ÿ‡ต๐Ÿ‡ฆ Panama +507\n" "๐Ÿ‡ต๐Ÿ‡ฌ Papua New Guinea +675\n" "๐Ÿ‡ต๐Ÿ‡พ Paraguay +595\n" "๐Ÿ‡ต๐Ÿ‡ช Peru +51\n" "๐Ÿ‡ต๐Ÿ‡ญ Philippines +63\n" "๐Ÿ‡ต๐Ÿ‡ฑ Poland +48\n" "๐Ÿ‡ต๐Ÿ‡น Portugal +351\n" "๐Ÿ‡ต๐Ÿ‡ท Puerto Rico +1\n" "๐Ÿ‡ถ๐Ÿ‡ฆ Qatar +974\n" "๐Ÿ‡ซ๐Ÿ‡ท Rรฉunion +262\n" "๐Ÿ‡ท๐Ÿ‡ด Romania +40\n" "๐Ÿ‡ท๐Ÿ‡บ Russia +7\n" "๐Ÿ‡ท๐Ÿ‡ผ Rwanda +250\n" "๐Ÿ‡ง๐Ÿ‡ฑ Saint-Barthรฉlemy +590\n" "๐Ÿ‡ธ๐Ÿ‡ญ Saint Helena +290\n" "๐Ÿ‡ฐ๐Ÿ‡ณ Saint Kitts & Nevis +1869\n" "๐Ÿ‡ฑ๐Ÿ‡จ Saint Lucia +1758\n" "๐Ÿ‡ซ๐Ÿ‡ท Saint Martin +590\n" "๐Ÿ‡ต๐Ÿ‡ฒ Saint Pierre & Miquelon +508\n" "๐Ÿ‡ป๐Ÿ‡จ Saint Vincent & Grenadines +1784\n" "๐Ÿ‡ผ๐Ÿ‡ธ Samoa +685\n" "๐Ÿ‡ธ๐Ÿ‡ฒ San Marino +378\n" "๐Ÿ‡ธ๐Ÿ‡น Sรฃo Tomรฉ & Prรญncipe +239\n" "๐Ÿ‡ธ๐Ÿ‡ฆ Saudi Arabia +966\n" "๐Ÿ‡ธ๐Ÿ‡ณ Senegal +221\n" "๐Ÿ‡ท๐Ÿ‡ธ Serbia +381\n" "๐Ÿ‡ธ๐Ÿ‡จ Seychelles +248\n" "๐Ÿ‡ธ๐Ÿ‡ฑ Sierra Leone +232\n" "๐Ÿ‡ธ๐Ÿ‡ฌ Singapore +65\n" "๐Ÿ‡ธ๐Ÿ‡ฝ Sint Maarten +1721\n" "๐Ÿ‡ธ๐Ÿ‡ฐ Slovakia +421\n" "๐Ÿ‡ธ๐Ÿ‡ฎ Slovenia +386\n" "๐Ÿ‡ธ๐Ÿ‡ง Solomon Islands +677\n" "๐Ÿ‡ธ๐Ÿ‡ด Somalia +252\n" "๐Ÿ‡ฟ๐Ÿ‡ฆ South Africa +27\n" "๐Ÿ‡ฐ๐Ÿ‡ท South Korea +82\n" "๐Ÿ‡ธ๐Ÿ‡ธ South Sudan +211\n" "๐Ÿ‡ช๐Ÿ‡ธ Spain +34\n" "๐Ÿ‡ฑ๐Ÿ‡ฐ Sri Lanka +94\n" "๐Ÿ‡ธ๐Ÿ‡ฉ Sudan +249\n" "๐Ÿ‡ธ๐Ÿ‡ท Suriname +597\n" "๐Ÿ‡ณ๐Ÿ‡ด Svalbard & Jan Mayen +47\n" "๐Ÿ‡ธ๐Ÿ‡ฟ Swaziland +268\n" "๐Ÿ‡ธ๐Ÿ‡ช Sweden +46\n" "๐Ÿ‡จ๐Ÿ‡ญ Switzerland +41\n" "๐Ÿ‡ธ๐Ÿ‡พ Syria +963\n" "๐Ÿ‡น๐Ÿ‡ผ Taiwan +886\n" "๐Ÿ‡น๐Ÿ‡ฏ Tajikistan +992\n" "๐Ÿ‡น๐Ÿ‡ฟ Tanzania +255\n" "๐Ÿ‡น๐Ÿ‡ญ Thailand +66\n" "๐Ÿ‡น๐Ÿ‡ฑ Timor-Leste +670\n" "๐Ÿ‡น๐Ÿ‡ฌ Togo +228\n" "๐Ÿ‡น๐Ÿ‡ฐ Tokelau +690\n" "๐Ÿ‡น๐Ÿ‡ด Tonga +676\n" "๐Ÿ‡น๐Ÿ‡น Trinidad & Tobago +1868\n" "๐Ÿ‡น๐Ÿ‡ณ Tunisia +216\n" "๐Ÿ‡น๐Ÿ‡ท Turkey +90\n" "๐Ÿ‡น๐Ÿ‡ฒ Turkmenistan +993\n" "๐Ÿ‡น๐Ÿ‡จ Turks & Caicos Islands +1649\n" "๐Ÿ‡น๐Ÿ‡ป Tuvalu +688\n" "๐Ÿ‡ป๐Ÿ‡ฎ U.S. Virgin Islands +1340\n" "๐Ÿ‡บ๐Ÿ‡ฌ Uganda +256\n" "๐Ÿ‡บ๐Ÿ‡ฆ Ukraine +380\n" "๐Ÿ‡ฆ๐Ÿ‡ช United Arab Emirates +971\n" "๐Ÿ‡ฌ๐Ÿ‡ง United Kingdom +44\n" "๐Ÿ‡บ๐Ÿ‡ธ United States +1\n" "๐Ÿ‡บ๐Ÿ‡พ Uruguay +598\n" "๐Ÿ‡บ๐Ÿ‡ฟ Uzbekistan +998\n" "๐Ÿ‡ป๐Ÿ‡บ Vanuatu +678\n" "๐Ÿ‡ป๐Ÿ‡ฆ Vatican City +39\n" "๐Ÿ‡ป๐Ÿ‡ช Venezuela +58\n" "๐Ÿ‡ป๐Ÿ‡ณ Vietnam +84\n" "๐Ÿ‡ผ๐Ÿ‡ซ Wallis & Futuna +681\n" "๐Ÿ‡ช๐Ÿ‡ญ Western Sahara +212\n" "๐Ÿ‡พ๐Ÿ‡ช Yemen +967\n" "๐Ÿ‡ฟ๐Ÿ‡ฒ Zambia +260\n" "๐Ÿ‡ฟ๐Ÿ‡ผ Zimbabwe +263") matches = regex.finditer(test_str) for match_num, match in enumerate(matches, start=1): print(f"Match {match_num} was found at {match.start()}-{match.end()}: {match.group()}") for group_num, group in enumerate(match.groups(), start=1): print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")

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 Python, please visit: https://docs.python.org/3/library/re.html