Regular Expressions 101

Save & Share

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
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
Processing...

Test String

Code Generator

Generated Code

import re regex = re.compile(r"(.*)(?<=,)((.\n|.)*)(\D\d{6}\D)") test_str = ("Rotex Group\n" "Manufacturing Units\n" "Rotex Automation Limited (Unit 1)\n" "987/11, GIDC Estate\n" "Makarpura,sfg\n" "Vadodara-390010.\n\n" "987/11, GIDC Estate\n" "Makarpura,sfg\n" "manipoor, gujratpunjab,\n" "Vadodara-390010.\n" "Gujarat, India.\n" "Ph :\n\n" "asf aSD ASFAdf aSD ASd asd asd aSDAdasd \n" "1606-1609, 16th Floor, Rupa Solitaire, Plot No\n" "A-1, Sector 1, Millennium Business Park, Mahape, Navi Mumbai - 400710\n\n" "szdgfads\n" "#257, GK complex, Amarjyothi, BHCS layout, \n" "Inner Ring Road,Domlur 548998\n\n" "gh,xfzgdxfzg,\n" "Bangalore-560071.\n\n" "asdgasdg asdg\n" "adgzs \n" "2-5, First Flr., Samarpan Complex, S.P.Ring Rd Ambli-Bopal Crossing,\n" "Ahmedabad -380058\n\n" "This is a simple expression to check a US street address entered on either one or two lines. Being short it does not check that the road qualifer is &quot;valid&quot; (eg. drive, avenue, etc), but it does allow for the extended zip code. A word of warning, the multiline mode can be picky about ending the first line with extra space.\n" "asdf \n" "210/211, Richmond Towers, 12, Richmond Road, Bangalore, Karnataka - 560025\n\n" "sadfasf\n" "Your E-Mail : \n" "Brief Message \n" " Submit Clear\n" "KHETAN MARBLE\n\n" "Jyoti,Minerals Pvt, Ltd 456345\n\n" "Green Marble House Pvt. Ltd.\n" "Administrative Office:\n" "8-D, New Fatehpura,\n" "Rajasthan, India 456456\n" "Tel.: +91-294-2560062, 2560443\n\n\n\n" "Fax: +91-294-2560677\n\n" "Corporate Office:\n" "509-A, International Trade Tower,Nehru Place,\n" "New Delhi-111019, India\n" "Tel.: +91-11-26216877, 26434303\n" "Fax: +91-11-26448005\n" "Email: info@khetanmarbles.com\n" "Website : www.khetanmarbles.com\n") 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