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]
  • 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

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 = "(.*?)\\[(.*)\\]"; final String string = "Canada [CA]\n" + "United States [US]\n" + "Afghanistan [AF]\n" + "Albania [AL]\n" + "Algeria [DZ]\n" + "American Samoa [AS]\n" + "Andorra [AD]\n" + "Angola [AO]\n" + "Anguilla [AI]\n" + "Antarctica [AQ]\n" + "Antigua And Barbuda [AG]\n" + "Argentina [AR]\n" + "Armenia [AM]\n" + "Aruba [AW]\n" + "Australia [AU]\n" + "Austria [AT]\n" + "Azerbaijan [AZ]\n" + "Bahamas [BS]\n" + "Bahrain [BH]\n" + "Bangladesh [BD]\n" + "Barbados [BB]\n" + "Belarus [BY]\n" + "Belgium [BE]\n" + "Belize [BZ]\n" + "Benin [BJ]\n" + "Bermuda [BM]\n" + "Bhutan [BT]\n" + "Bolivia [BO]\n" + "Bosnia And Herzegovina [BA]\n" + "Botswana [BW]\n" + "Bouvet Island [BV]\n" + "Brazil [BR]\n" + "British Indian Ocean Territory [IO]\n" + "Brunei Darussalam [BN]\n" + "Bulgaria [BG]\n" + "Burkina Faso [BF]\n" + "Burundi [BI]\n" + "Cambodia [KH]\n" + "Cameroon [CM]\n" + "Cape Verde [CV]\n" + "Cayman Islands [KY]\n" + "Central African Republic [CF]\n" + "Chad [TD]\n" + "Chile [CL]\n" + "China [CN]\n" + "Christmas Island [CX]\n" + "Cocos (keeling) Islands [CC]\n" + "Colombia [CO]\n" + "Comoros [KM]\n" + "Congo [CG]\n" + "Congo, The Democratic Republic Of The [CD]\n" + "Cook Islands [CK]\n" + "Costa Rica [CR]\n" + "Cote D'ivoire [CI]\n" + "Croatia [HR]\n" + "Cuba [CU]\n" + "Cyprus [CY]\n" + "Czech Republic [CZ]\n" + "Denmark [DK]\n" + "Djibouti [DJ]\n" + "Dominica [DM]\n" + "Dominican Republic [DO]\n" + "East Timor [TP]\n" + "Ecuador [EC]\n" + "Egypt [EG]\n" + "El Salvador [SV]\n" + "Equatorial Guinea [GQ]\n" + "Eritrea [ER]\n" + "Estonia [EE]\n" + "Ethiopia [ET]\n" + "Falkland Islands (malvinas) [FK]\n" + "Faroe Islands [FO]\n" + "Fiji [FJ]\n" + "Finland [FI]\n" + "France [FR]\n" + "French Guiana [GF]\n" + "French Polynesia [PF]\n" + "French Southern Territories [TF]\n" + "Gabon [GA]\n" + "Gambia [GM]\n" + "Georgia [GE]\n" + "Germany [DE]\n" + "Ghana [GH]\n" + "Gibraltar [GI]\n" + "Greece [GR]\n" + "Greenland [GL]\n" + "Grenada [GD]\n" + "Guadeloupe [GP]\n" + "Guam [GU]\n" + "Guatemala [GT]\n" + "Guinea [GN]\n" + "Guinea-bissau [GW]\n" + "Guyana [GY]\n" + "Haiti [HT]\n" + "Heard Island And Mcdonald Islands [HM]\n" + "Holy See (vatican City State) [VA]\n" + "Honduras [HN]\n" + "Hong Kong [HK]\n" + "Hungary [HU]\n" + "Iceland [IS]\n" + "India [IN]\n" + "Indonesia [ID]\n" + "Iran, Islamic Republic Of [IR]\n" + "Iraq [IQ]\n" + "Ireland [IE]\n" + "Israel [IL]\n" + "Italy [IT]\n" + "Jamaica [JM]\n" + "Japan [JP]\n" + "Jordan [JO]\n" + "Kazakstan [KZ]\n" + "Kenya [KE]\n" + "Kiribati [KI]\n" + "Korea, Democratic People's Republic Of [KP]\n" + "Korea, Republic Of [KR]\n" + "Kosovo [KV]\n" + "Kuwait [KW]\n" + "Kyrgyzstan [KG]\n" + "Lao People's Democratic Republic [LA]\n" + "Latvia [LV]\n" + "Lebanon [LB]\n" + "Lesotho [LS]\n" + "Liberia [LR]\n" + "Libyan Arab Jamahiriya [LY]\n" + "Liechtenstein [LI]\n" + "Lithuania [LT]\n" + "Luxembourg [LU]\n" + "Macau [MO]\n" + "Macedonia, The Former Yugoslav Republic Of [MK]\n" + "Madagascar [MG]\n" + "Malawi [MW]\n" + "Malaysia [MY]\n" + "Maldives [MV]\n" + "Mali [ML]\n" + "Malta [MT]\n" + "Marshall Islands [MH]\n" + "Martinique [MQ]\n" + "Mauritania [MR]\n" + "Mauritius [MU]\n" + "Mayotte [YT]\n" + "Mexico [MX]\n" + "Micronesia, Federated States Of [FM]\n" + "Moldova, Republic Of [MD]\n" + "Monaco [MC]\n" + "Mongolia [MN]\n" + "Montenegro [ME]\n" + "Montserrat [MS]\n" + "Morocco [MA]\n" + "Mozambique [MZ]\n" + "Myanmar [MM]\n" + "Namibia [NA]\n" + "Nauru [NR]\n" + "Nepal [NP]\n" + "Netherlands [NL]\n" + "Netherlands Antilles [AN]\n" + "New Caledonia [NC]\n" + "New Zealand [NZ]\n" + "Nicaragua [NI]\n" + "Niger [NE]\n" + "Nigeria [NG]\n" + "Niue [NU]\n" + "Norfolk Island [NF]\n" + "Northern Mariana Islands [MP]\n" + "Norway [NO]\n" + "Oman [OM]\n" + "Pakistan [PK]\n" + "Palau [PW]\n" + "Palestinian Territory, Occupied [PS]\n" + "Panama [PA]\n" + "Papua New Guinea [PG]\n" + "Paraguay [PY]\n" + "Peru [PE]\n" + "Philippines [PH]\n" + "Pitcairn [PN]\n" + "Poland [PL]\n" + "Portugal [PT]\n" + "Puerto Rico [PR]\n" + "Qatar [QA]\n" + "Reunion [RE]\n" + "Romania [RO]\n" + "Russian Federation [RU]\n" + "Rwanda [RW]\n" + "Saint Helena [SH]\n" + "Saint Kitts And Nevis [KN]\n" + "Saint Lucia [LC]\n" + "Saint Pierre And Miquelon [PM]\n" + "Saint Vincent And The Grenadines [VC]\n" + "Samoa [WS]\n" + "San Marino [SM]\n" + "Sao Tome And Principe [ST]\n" + "Saudi Arabia [SA]\n" + "Senegal [SN]\n" + "Serbia [RS]\n" + "Seychelles [SC]\n" + "Sierra Leone [SL]\n" + "Singapore [SG]\n" + "Slovakia [SK]\n" + "Slovenia [SI]\n" + "Solomon Islands [SB]\n" + "Somalia [SO]\n" + "South Africa [ZA]\n" + "South Georgia And The South Sandwich Islands [GS]\n" + "Spain [ES]\n" + "Sri Lanka [LK]\n" + "Sudan [SD]\n" + "Suriname [SR]\n" + "Svalbard And Jan Mayen [SJ]\n" + "Swaziland [SZ]\n" + "Sweden [SE]\n" + "Switzerland [CH]\n" + "Syrian Arab Republic [SY]\n" + "Taiwan, Province Of China [TW]\n" + "Tajikistan [TJ]\n" + "Tanzania, United Republic Of [TZ]\n" + "Thailand [TH]\n" + "Togo [TG]\n" + "Tokelau [TK]\n" + "Tonga [TO]\n" + "Trinidad And Tobago [TT]\n" + "Tunisia [TN]\n" + "Turkey [TR]\n" + "Turkmenistan [TM]\n" + "Turks And Caicos Islands [TC]\n" + "Tuvalu [TV]\n" + "Uganda [UG]\n" + "Ukraine [UA]\n" + "United Arab Emirates [AE]\n" + "United Kingdom [GB]\n" + "United States Minor Outlying Islands [UM]\n" + "Uruguay [UY]\n" + "Uzbekistan [UZ]\n" + "Vanuatu [VU]\n" + "Venezuela [VE]\n" + "Viet Nam [VN]\n" + "Virgin Islands, British [VG]\n" + "Virgin Islands, U.s. [VI]\n" + "Wallis And Futuna [WF]\n" + "Western Sahara [EH]\n" + "Yemen [YE]\n" + "Zambia [ZM]\n" + "Zimbabwe [ZW]\n" + "Other\n"; final String subst = "$2|$1[$2]"; 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.replaceAll(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