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

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"
"

Test String

Substitution

Processing...

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "(^.+?)\\s+(\\w{2})\\s+(\\w{3})\\s+(\\d{3})"; final String string = "BOSNIA AND HERZEGOWINA BA BIH 070\n" + "BOTSWANA BW BWA 072\n" + "BOUVET ISLAND BV BVT 074\n" + "BRAZIL BR BRA 076\n" + "BRITISH INDIAN OCEAN TERRITORY IO IOT 086\n" + "BRUNEI DARUSSALAM BN BRN 096\n" + "BULGARIA BG BGR 100\n" + "BURKINA FASO BF BFA 854\n" + "BURUNDI BI BDI 108\n" + "CAMBODIA KH KHM 116\n" + "CAMEROON CM CMR 120\n" + "CANADA CA CAN 124\n" + "CAPE VERDE CV CPV 132\n" + "CAYMAN ISLANDS KY CYM 136\n" + "CENTRAL AFRICAN REPUBLIC CF CAF 140\n" + "CHAD TD TCD 148\n" + "CHILE CL CHL 152\n" + "CHINA CN CHN 156\n" + "CHRISTMAS ISLAND CX CXR 162\n" + "COCOS (KEELING) ISLANDS CC CCK 166\n" + "COLOMBIA CO COL 170\n" + "COMOROS KM COM 174\n" + "CONGO, Democratic Republic of (was Zaire) CD COD 180\n" + "CONGO, Republic of CG COG 178\n" + "COOK ISLANDS CK COK 184\n" + "COSTA RICA CR CRI 188\n" + "COTE D'IVOIRE CI CIV 384\n" + "CROATIA (local name: Hrvatska) HR HRV 191\n" + "CUBA CU CUB 192\n" + "CYPRUS CY CYP 196\n" + "CZECH REPUBLIC CZ CZE 203\n" + "DENMARK DK DNK 208\n" + "DJIBOUTI DJ DJI 262\n" + "DOMINICA DM DMA 212\n" + "DOMINICAN REPUBLIC DO DOM 214\n" + "ECUADOR EC ECU 218\n" + "EGYPT EG EGY 818\n" + "EL SALVADOR SV SLV 222\n" + "EQUATORIAL GUINEA GQ GNQ 226\n" + "ERITREA ER ERI 232\n" + "ESTONIA EE EST 233\n" + "ETHIOPIA ET ETH 231\n" + "FALKLAND ISLANDS (MALVINAS) FK FLK 238\n" + "FAROE ISLANDS FO FRO 234\n" + "FIJI FJ FJI 242\n" + "FINLAND FI FIN 246\n" + "FRANCE FR FRA 250\n" + "FRENCH GUIANA GF GUF 254\n" + "FRENCH POLYNESIA PF PYF 258\n" + "FRENCH SOUTHERN TERRITORIES TF ATF 260\n" + "GABON GA GAB 266\n" + "GAMBIA GM GMB 270\n" + "GEORGIA GE GEO 268\n" + "GERMANY DE DEU 276\n" + "GHANA GH GHA 288\n" + "GIBRALTAR GI GIB 292\n" + "GREECE GR GRC 300\n" + "GREENLAND GL GRL 304\n" + "GRENADA GD GRD 308\n" + "GUADELOUPE GP GLP 312\n" + "GUAM GU GUM 316\n" + "GUATEMALA GT GTM 320\n" + "GUINEA GN GIN 324\n" + "GUINEA-BISSAU GW GNB 624\n" + "GUYANA GY GUY 328\n" + "HAITI HT HTI 332\n" + "HEARD AND MC DONALD ISLANDS HM HMD 334\n" + "HONDURAS HN HND 340\n" + "HONG KONG HK HKG 344\n" + "HUNGARY HU HUN 348\n" + "ICELAND IS ISL 352\n" + "INDIA IN IND 356\n" + "INDONESIA ID IDN 360\n" + "IRAN (ISLAMIC REPUBLIC OF) IR IRN 364\n" + "IRAQ IQ IRQ 368\n" + "IRELAND IE IRL 372\n" + "ISRAEL IL ISR 376\n" + "ITALY IT ITA 380\n" + "JAMAICA JM JAM 388\n" + "JAPAN JP JPN 392\n" + "JORDAN JO JOR 400\n" + "KAZAKHSTAN KZ KAZ 398\n" + "KENYA KE KEN 404\n" + "KIRIBATI KI KIR 296\n" + "KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP PRK 408\n" + "KOREA, REPUBLIC OF KR KOR 410\n" + "KUWAIT KW KWT 414\n" + "KYRGYZSTAN KG KGZ 417\n" + "LAO PEOPLE'S DEMOCRATIC REPUBLIC LA LAO 418\n" + "LATVIA LV LVA 428\n" + "LEBANON LB LBN 422\n" + "LESOTHO LS LSO 426\n" + "LIBERIA LR LBR 430\n" + "LIBYAN ARAB JAMAHIRIYA LY LBY 434\n" + "LIECHTENSTEIN LI LIE 438\n" + "LITHUANIA LT LTU 440\n" + "LUXEMBOURG LU LUX 442\n" + "MACAU MO MAC 446\n" + "MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK MKD 807\n" + "MADAGASCAR MG MDG 450\n" + "MALAWI MW MWI 454\n" + "MALAYSIA MY MYS 458\n" + "MALDIVES MV MDV 462\n" + "MALI ML MLI 466\n" + "MALTA MT MLT 470\n" + "MARSHALL ISLANDS MH MHL 584\n" + "MARTINIQUE MQ MTQ 474\n" + "MAURITANIA MR MRT 478\n" + "MAURITIUS MU MUS 480\n" + "MAYOTTE YT MYT 175\n" + "MEXICO MX MEX 484\n" + "MICRONESIA, FEDERATED STATES OF FM FSM 583\n" + "MOLDOVA, REPUBLIC OF MD MDA 498\n" + "MONACO MC MCO 492\n" + "MONGOLIA MN MNG 496\n" + "MONTSERRAT MS MSR 500\n" + "MOROCCO MA MAR 504\n" + "MOZAMBIQUE MZ MOZ 508\n" + "MYANMAR MM MMR 104\n" + "NAMIBIA NA NAM 516\n" + "NAURU NR NRU 520\n" + "NEPAL NP NPL 524\n" + "NETHERLANDS NL NLD 528\n" + "NETHERLANDS ANTILLES AN ANT 530\n" + "NEW CALEDONIA NC NCL 540\n" + "NEW ZEALAND NZ NZL 554\n" + "NICARAGUA NI NIC 558\n" + "NIGER NE NER 562\n" + "NIGERIA NG NGA 566\n" + "NIUE NU NIU 570\n" + "NORFOLK ISLAND NF NFK 574\n" + "NORTHERN MARIANA ISLANDS MP MNP 580\n" + "NORWAY NO NOR 578\n" + "OMAN OM OMN 512\n" + "PAKISTAN PK PAK 586\n" + "PALAU PW PLW 585\n" + "PALESTINIAN TERRITORY, Occupied PS PSE 275\n" + "PANAMA PA PAN 591\n" + "PAPUA NEW GUINEA PG PNG 598\n" + "PARAGUAY PY PRY 600\n" + "PERU PE PER 604\n" + "PHILIPPINES PH PHL 608\n" + "PITCAIRN PN PCN 612\n" + "POLAND PL POL 616\n" + "PORTUGAL PT PRT 620\n" + "PUERTO RICO PR PRI 630\n" + "QATAR QA QAT 634\n" + "REUNION RE REU 638\n" + "ROMANIA RO ROU 642\n" + "RUSSIAN FEDERATION RU RUS 643\n" + "RWANDA RW RWA 646\n" + "SAINT HELENA SH SHN 654\n" + "SAINT KITTS AND NEVIS KN KNA 659\n" + "SAINT LUCIA LC LCA 662\n" + "SAINT PIERRE AND MIQUELON PM SPM 666\n" + "SAINT VINCENT AND THE GRENADINES VC VCT 670\n" + "SAMOA WS WSM 882\n" + "SAN MARINO SM SMR 674\n" + "SAO TOME AND PRINCIPE ST STP 678\n" + "SAUDI ARABIA SA SAU 682\n" + "SENEGAL SN SEN 686\n" + "SERBIA AND MONTENEGRO CS SCG 891\n" + "SEYCHELLES SC SYC 690\n" + "SIERRA LEONE SL SLE 694\n" + "SINGAPORE SG SGP 702\n" + "SLOVAKIA SK SVK 703\n" + "SLOVENIA SI SVN 705\n" + "SOLOMON ISLANDS SB SLB 090\n" + "SOMALIA SO SOM 706\n" + "SOUTH AFRICA ZA ZAF 710\n" + "SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS SGS 239\n" + "SPAIN ES ESP 724\n" + "SRI LANKA LK LKA 144\n" + "SUDAN SD SDN 736\n" + "SURINAME SR SUR 740\n" + "SVALBARD AND JAN MAYEN ISLANDS SJ SJM 744\n" + "SWAZILAND SZ SWZ 748\n" + "SWEDEN SE SWE 752\n" + "SWITZERLAND CH CHE 756\n" + "SYRIAN ARAB REPUBLIC SY SYR 760\n" + "TAIWAN TW TWN 158\n" + "TAJIKISTAN TJ TJK 762\n" + "TANZANIA, UNITED REPUBLIC OF TZ TZA 834\n" + "THAILAND TH THA 764\n" + "TIMOR-LESTE TL TLS 626\n" + "TOGO TG TGO 768\n" + "TOKELAU TK TKL 772\n" + "TONGA TO TON 776\n" + "TRINIDAD AND TOBAGO TT TTO 780\n" + "TUNISIA TN TUN 788\n" + "TURKEY TR TUR 792\n" + "TURKMENISTAN TM TKM 795\n" + "TURKS AND CAICOS ISLANDS TC TCA 796\n" + "TUVALU TV TUV 798\n" + "UGANDA UG UGA 800\n" + "UKRAINE UA UKR 804\n" + "UNITED ARAB EMIRATES AE ARE 784\n" + "UNITED KINGDOM GB GBR 826\n" + "UNITED STATES US USA 840\n" + "UNITED STATES MINOR OUTLYING ISLANDS UM UMI 581\n" + "URUGUAY UY URY 858\n" + "UZBEKISTAN UZ UZB 860\n" + "VANUATU VU VUT 548\n" + "VATICAN CITY STATE (HOLY SEE) VA VAT 336\n" + "VENEZUELA VE VEN 862\n" + "VIET NAM VN VNM 704\n" + "VIRGIN ISLANDS (BRITISH) VG VGB 092\n" + "VIRGIN ISLANDS (U.S.) VI VIR 850\n" + "WALLIS AND FUTUNA ISLANDS WF WLF 876\n" + "WESTERN SAHARA EH ESH 732\n" + "YEMEN YE YEM 887\n" + "ZAMBIA ZM ZMB 894\n" + "ZIMBABWE ZW ZWE 716"; final String subst = ""; final Pattern pattern = Pattern.compile(regex); final Matcher matcher = pattern.matcher(string); // The substituted value will be contained in the result variable final String result = matcher.replaceFirst(subst); System.out.println("Substitution result: " + 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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html