Regular Expressions 101

Save & Manage Regex

  • Current Version: 6
  • 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
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]
  • Character class intersection
    [\w&&[^\d]]
  • 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"^([pP][oO] +[bB][oO][xX]|[pP][rR][iI][vV][aA][tT][eE] +[bB][aA][gG]) +(\d+).*|^([\/\wÀ-ɏḀ-ỹ .'-]*, *)?(\d[\/\w]*)[\/\wÀ-ɏḀ-ỹ .,'#-]*$", flags=re.MULTILINE) test_str = ("Street address:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "224B Clarence Street, Vogeltown, Wellington 6023\n\n" "Rural address:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "128 Valley Road North, RD 2, Middlemarch 9597\n\n" "PO Box:\n" "¯¯¯¯¯¯¯\n" "PO Box 17999, Greenlane, Auckland 1546\n\n" "Street – with unit:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "3/123 Johnstone Street West, Point Chevalier, Auckland 1022\n\n" "Rural address with unit:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "8/56 Maple Boulevard, RD 2, Wanaka 9382\n\n" "Private Bag:\n" "¯¯¯¯¯¯¯¯¯¯¯¯\n" "Private Bag 93899, Auckland 0753\n\n" "Street – with building name:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "Level 2 Colombo House, 3A/1222 Colombo Street, St Albans, Christchurch 8014\n\n" "Rural address – with building name:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "Totârä Farm, 2/12543 Farm Road, RD 1, Outram 9073\n\n" "Rural address – with c/o:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "c/o James Bond, 2/12543 Farm Road, RD 1, Outram 9073\n\n" "Other addresses around the world:\n" "¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯\n" "813 Howard Street, Oswego, NY 13126, USA\n" "1 Beacon Street, 33rd Floor, Boston, MA 02108, USA\n" "Hagagatan 1 vi, SE-113 49 Stockholm, Sweden\n" "John A. Smith, ACME Innovations Inc., PO BOX 1033, Los Angeles, CA\n" "c/o Henry Roth, 50 Oakland Ave,#206, A City, Florida, 32104, USA\n" "10 Downing Street, London, Greater London, SW1A 2AA, United Kingdom\n" "Av. de Senalèche 27, 1009 Pully, Switzerland\n" "17, Rue Bergère, 75009 Paris, France\n" "11 Bis Av. Gabriel Péri, 38150 Roussillon, France\n" "Apostel-Paulus-Strasse 7, 10823 Berlin, Deutschland\n" "Château Brillant, 75000 Paris, France\n\n" "Crap data:\n" "¯¯¯¯¯¯¯¯¯¯\n" "$^srflkwjeras %\n" "894\n" "879D\n" "7895/465\n" "5465 D\n" "4565 D$ wer\n" "House name, 45\n" "Help me please!") 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