Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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"(?<=\d{4}\-\d{2}\-\d{2}|\d{4}.\d{4}|\d{4}.\d{1}.\d{1}.\d{2}|\d{4}.\d{2}.\d{2}).*?(?=\d)" test_str = (". FIRST BANK OF WIKI\n" ", 1425 JAMES ST, PO BOX 4000 CHEQUING ACCOUNT STATEMENT\n" "VICTORIA BC V8X 3X4 1-800-555~5555 Page: 1 of 1\n" "JOHN JONES I Sififi3331‘3311 Erma II EEK-111313010: I\n" "1643 DUN DAS ST W APT 27 2003-10-09 to 200341-08 00005-\n" "TORONTO ON M6K 1V2 123-4567\n" "I sue II 1% 1::ng “W II um II I\n" "2003-10-08 Previous balance 0.55 I\n" "2003-10-14 Payroll Deposit - HOTEL 694.81 695.36\n" "2003-10-14 Web Bill Payment - MASTERCARD 9685 200.00 495.36 \n" "2003—1046 ATM Withdrawal - INTERAC 3990 21 .25 474.11 .\n" "2003-10-16 Fees - lnterac 1 .50 472.61 I\n" "2003-10-20 Interac Purchase - ELECTRONICS 1975 2.99 469.62 .\n" "2003-10-21 Web Bill Payment - AMEX 3314 300.00 169.62\n" "2003-1 0-22 ATM Withdrawal - FIRST BANK 0064 100.00 69.62 .\n" "2003-10-23 lnterac Purchase - SUPERMARKET 1 559 29.08 40.54 I\n" "2003-10-24 Interac Refund - ELECTRONICS 1975 2.99 43.53\n" "2003-10-27 Telephone Bill Payment — VISA 2475 6.77 36.76 I\n" "2003-1328 Payroll Deposit - HOTEL 694.81 731.57 .\n" "2003-10~30 Web Funds Transfer - From SAVINGS 2620 50.00 781.57 I\n" "2003-11-03 Pre-Auth. Payment - INSURANCE 33.55 748.02 .\n" "2003-11-03 Cheque No. - 409 1 00.00 648.02\n" "2003-11-06 Mortgage Payment 710.49 -62.47 .\n" "2003-11-07 Fees - Overdraft 5.00 -67.47 I\n" "2003-11-08 Fees - Monthly 5.00 -72.47\n" "*** Totals m 1 ,515.63 1,442.61 I") 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