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

/
/
gmi

Test String

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*[a-zA-Z]{1}[0-9a-zA-Z][0-9a-zA-Z '-.=#/]*$"; final String string = "test=123\n" + "=test123\n" + "austin .,#/-\n" + "Aberdeen\n" + "Abilene\n" + "Akron\n" + "Albany\n" + "Albu querque\n" + "Alexandria\n" + "Allentown\n" + "Amarillo\n" + "Anaheim\n" + "Anchorage\n" + "Ann Arbor\n" + "Antioch\n" + "Apple Valley\n" + "Appleton\n" + "Arlington\n" + "Arvada\n" + "Asheville\n" + "Athens\n" + "Atlanta\n" + "Atlantic City\n" + "Augusta\n" + "Aurora\n" + "Austin\n" + "Bakersfield\n" + "Baltimore\n" + "Barnstable\n" + "Baton Rouge\n" + "Beaumont\n" + "Bel Air\n" + "Bellevue\n" + "Berkeley\n" + "Bethlehem\n" + "Billings\n" + "Birmingham\n" + "Bloomington\n" + "Boise\n" + "Boise City\n" + "Bonita Springs\n" + "Boston\n" + "Boulder\n" + "Bradenton\n" + "Bremerton\n" + "Bridgeport\n" + "Brighton\n" + "Brownsville\n" + "Bryan\n" + "Buffalo\n" + "Burbank\n" + "Burlington\n" + "Cambridge\n" + "Canton\n" + "Cape Coral\n" + "Carrollton\n" + "Cary\n" + "Cathedral City\n" + "Cedar Rapids\n" + "Champaign\n" + "Chandler\n" + "Charleston\n" + "Charlotte\n" + "Chattanooga\n" + "Chesapeake\n" + "Chicago\n" + "Chula Vista\n" + "Cincinnati\n" + "Clarke County\n" + "Clarksville\n" + "Clearwater\n" + "Cleveland\n" + "College Station\n" + "Colorado Springs\n" + "Columbia\n" + "Columbus\n" + "Concord\n" + "Coral Springs\n" + "Corona\n" + "Corpus Christi\n" + "Costa Mesa\n" + "Dallas\n" + "Daly City\n" + "Danbury\n" + "Davenport\n" + "Davidson County\n" + "Dayton\n" + "Daytona Beach\n" + "Deltona\n" + "Denton\n" + "Denver\n" + "Des Moines\n" + "Detroit\n" + "Downey\n" + "Duluth\n" + "Durham\n" + "El Monte\n" + "El Paso\n" + "Elizabeth\n" + "Elk Grove\n" + "Elkhart\n" + "Erie\n" + "Escondido\n" + "Eugene\n" + "Evansville\n" + "Fairfield\n" + "Fargo\n" + "Fayetteville\n" + "Fitchburg\n" + "Flint\n" + "Fontana\n" + "Fort Collins\n" + "Fort Lauderdale\n" + "Fort Smith\n" + "Fort Walton Beach\n" + "Fort Wayne\n" + "Fort Worth\n" + "Frederick\n" + "Fremont\n" + "Fresno\n" + "Fullerton\n" + "Gainesville\n" + "9Garden Grove\n" + "Garland\n" + "Gastonia\n" + "Gilbert\n" + "Glendale\n" + "Grand Prairie\n" + "Grand Rapids\n" + "Grayslake\n" + "Green Bay\n" + "GreenBay\n" + "Greensboro\n" + "Greenville\n" + "Gulfport-Biloxi\n" + "Hagerstown\n" + "Hampton\n" + "Harlingen\n" + "Harrisburg\n" + "Hartford\n" + "Havre de Grace\n" + "Hayward\n" + "Hemet\n" + "Henderson\n" + "Hesperia\n" + "Hialeah\n" + "Hickory\n" + "High Point\n" + "Hollywood\n" + "Honolulu\n" + "Houma\n" + "Houston\n" + "Howell\n" + "Huntington\n" + "Huntington Beach\n" + "Huntsville\n" + "Independence\n" + "Indianapolis\n" + "Inglewood\n" + "Irvine\n" + "Irving\n" + "Jackson\n" + "Jacksonville\n" + "Jefferson\n" + "Jersey City\n" + "Johnson City\n" + "Joliet\n" + "Kailua\n" + "Kalamazoo\n" + "Kaneohe\n" + "Kansas City\n" + "Kennewick\n" + "Kenosha\n" + "Killeen\n" + "Kissimmee\n" + "Knoxville\n" + "Lacey\n" + "Lafayette\n" + "Lake Charles\n" + "Lakeland\n" + "Lakewood\n" + "Lancaster\n" + "Lansing\n" + "Laredo\n" + "Las Cruces\n" + "Las Vegas\n" + "Layton\n" + "Leominster\n" + "Lewisville\n" + "Lexington\n" + "Lincoln\n" + "Little Rock\n" + "Long Beach\n" + "Lorain\n" + "Los Angeles\n" + "Louisville\n" + "Lowell\n" + "Lubbock\n" + "Macon\n" + "Madison\n" + "Manchester\n" + "Marina\n" + "Marysville\n" + "McAllen\n" + "McHenry\n" + "Medford\n" + "Melbourne\n" + "Memphis\n" + "Merced\n" + "Mesa\n" + "Mesquite\n" + "Miami\n" + "Milwaukee\n" + "Minneapolis\n" + "Miramar\n" + "Mission Viejo\n" + "Mobile\n" + "Modesto\n" + "Monroe\n" + "Monterey\n" + "Montgomery\n" + "Moreno Valley\n" + "Murfreesboro\n" + "Murrieta\n" + "Muskegon\n" + "Myrtle Beach\n" + "Naperville\n" + "Naples\n" + "Nashua\n" + "Nashville\n" + "New Bedford\n" + "New Haven\n" + "New London\n" + "New Orleans\n" + "New York\n" + "New York City\n" + "Newark\n" + "Newburgh\n" + "Newport News\n" + "Norfolk\n" + "Normal\n" + "Norman\n" + "North Charleston\n" + "North Las Vegas\n" + "North Port\n" + "Norwalk\n" + "Norwich\n" + "Oakland\n" + "Ocala\n" + "Oceanside\n" + "Odessa\n" + "Ogden\n" + "Oklahoma City\n" + "Olathe\n" + "Olympia\n" + "Omaha\n" + "Ontario\n" + "Orange\n" + "Orem\n" + "Orlando\n" + "Overland Park\n" + "Oxnard\n" + "Palm Bay\n" + "Palm Springs\n" + "Palmdale\n" + "Panama City\n" + "Pasadena\n" + "Paterson\n" + "Pembroke Pines\n" + "Pensacola\n" + "Peoria\n" + "Philadelphia\n" + "Phoenix\n" + "Pittsburgh\n" + "Plano\n" + "Pomona\n" + "Pompano Beach\n" + "Port Arthur\n" + "Port Orange\n" + "Port Saint Lucie\n" + "Port St. Lucie\n" + "Portland\n" + "Portsmouth\n" + "Poughkeepsie\n" + "Providence\n" + "Provo\n" + "Pueblo\n" + "Punta Gorda\n" + "Racine\n" + "Raleigh\n" + "Rancho Cucamonga\n" + "Reading\n" + "Redding\n" + "Reno\n" + "Richland\n" + "Richmond\n" + "Richmond County\n" + "Riverside\n" + "Roanoke\n" + "Rochester\n" + "Rockford\n" + "Roseville\n" + "Round Lake Beach\n" + "Sacramento\n" + "Saginaw\n" + "Saint Louis\n" + "Saint Paul\n" + "Saint Petersburg\n" + "Salem\n" + "Salinas\n" + "Salt Lake City\n" + "San Antonio\n" + "San Bernardino\n" + "San Buenaventura\n" + "San Diego\n" + "San Francisco\n" + "San Jose\n" + "Santa Ana\n" + "Santa Barbara\n" + "Santa Clara\n" + "Santa Clarita\n" + "Santa Cruz\n" + "Santa Maria\n" + "Santa Rosa\n" + "Sarasota\n" + "Savannah\n" + "Scottsdale\n" + "Scranton\n" + "Seaside\n" + "Seattle\n" + "Sebastian\n" + "Shreveport\n" + "Simi Valley\n" + "Sioux City\n" + "Sioux Falls\n" + "South Bend\n" + "South Lyon\n" + "Spartanburg\n" + "Spokane\n" + "Springdale\n" + "Springfield\n" + "St. Louis\n" + "St. Paul\n" + "St. Petersburg\n" + "Stamford\n" + "Sterling Heights\n" + "Stockton\n" + "Sunnyvale\n" + "Syracuse\n" + "Tacoma\n" + "Tallahassee\n" + "Tampa\n" + "Temecula\n" + "Tempe\n" + "Thornton\n" + "Thousand Oaks\n" + "Toledo\n" + "Topeka\n" + "Torrance\n" + "Trenton\n" + "Tucson\n" + "Tulsa\n" + "Tuscaloosa\n" + "Tyler\n" + "Utica\n" + "Vallejo\n" + "Vancouver\n" + "Vero Beach\n" + "Victorville\n" + "Virginia Beach\n" + "Visalia\n" + "Waco\n" + "Warren\n" + "Washington\n" + "Waterbury\n" + "Waterloo\n" + "West Covina\n" + "West Valley City\n" + "Westminster\n" + "Wichita\n" + "Wilmington\n" + "Winston\n" + "Winter Haven\n" + "Worcester\n" + "Yakima\n" + "Yonkers\n" + "York\n" + "Youngstown"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

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