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

/
/
gm

Test String

Code Generator

Generated Code

# coding=utf8 # the above tag defines encoding for this document and is for Python 2.x compatibility import re regex = r"[[:graph:]]+@[[:graph:]]+\.[[:graph:]]+" test_str = ("6x7 456 78993 45528 8382 837372 82 128 8282 82 828282 28 8282635372892 838 \n" "Lorem ipsum dolor 335-5555555 sit amet, consectetur adipisci5555555555 elit, sed eiusmod tempor incidunt ut labore et dolore magna aliqua.\n\n" "Ut enim ad minim veniam, quis 4@4 nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid e Mario ROSSI x ea commodi Fabio DE LUIGI cons mail@test.com equatur. 3835555555 Quis aute iure reprehenderit in voluptate 555/555555velit esse cillum HOMAWI @dolore eu fugiat nulla pariatur. 43434734 343 3 464 56 @5 65 6 5 757 676 Microsoft Office. \n\n" "Excepteur sint Vaalima obcaecat Digital Forensics 192.168.3.45 cupiditat non RSSNDR74D04A271P proident, sunt in Sabrox bombazzi culpa qui officia de@serunt mollit anim id est laborum. Lorem ipsum Dr.Torsby dolor sit amet, consec 234 546 367 2789 Veldrin tetur adipisci yourken elit,347/5555555 sed eiusm 565437 od tempor incidunt ut labore et Andrea dolore magna aliqua. Ut enim ad minim TELEFUNKEN elin@unita15.no.it \n\n\n" "FRODENO Jan enim ad minim 555-555555veniam, quis rssndr74d04a271u Zhang YUNING nostrum exercitatio@nem ullam 10.5.6.1corporis Vaalima suscip Wu LEI it laboriosam, nisi ut aliquid ex ea commodi Arael cons@equatur. Quis aute iure r328 5555555 eprehenderit in volup6767676767 6767676767tate 555 555555velit PLANESCAPE esse cillum dolore eu fugiat nulla pariatur.\n\n" "Excepteur sint obcae67676767676767676cat Soul Thosiel rssndr74D04A271U cupidita34567893 t non proident, sunt in culpa qui officia deserunt mollit Abdul-Wahaab Vaalima anim id est laborum. 388.555555 Lorem rSsndr74d04a271u ipsum cinnamomo@cengia.eu dolor sit amet, consectetur adipisci elit, sed Rosa eiusmod tempor Aimar incidunt ut labore et dolore magna a6767676767 32252525 353535 5353535liqua. Ut enim ad minim") matches = re.finditer(regex, test_str, re.MULTILINE) for matchNum, match in enumerate(matches, start=1): print ("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum = matchNum, start = match.start(), end = match.end(), match = match.group())) for groupNum in range(0, len(match.groups())): groupNum = groupNum + 1 print ("Group {groupNum} found at {start}-{end}: {group}".format(groupNum = groupNum, start = match.start(groupNum), end = match.end(groupNum), group = match.group(groupNum))) # Note: for Python 2.7 compatibility, use ur"" to prefix the regex and u"" to prefix the test string and substitution.

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