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"Anacode:\s*(\S+)\s*Test Code:" test_str = ("18:45:05.[948142] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Take Mode Test Code: Result: A Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[955123] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Blood Mode Test Code: Result: P Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[960143] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Test Mode Test Code: Result: CHEM+SEDIM Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[968089] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Ref Group Test Code: Result: Woman Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[973076] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Age Test Code: Result: 16 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[978063] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Project Type Test Code: Result: UR Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[984046] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Shelf No Test Code: Result: 4 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[989034] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Tube No Test Code: Result: 1 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:05.[995030] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Analyzer Test Code: Result: EU-5300 Pro-1 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[002010] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: SN Test Code: Result: QB3-46000165 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[008982] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: AuditResult Test Code: Result: Auto Validation OK Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[028941] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: URO Test Code: URT010 Result: Normal Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[049877] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: BIL Test Code: URT018 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[070827] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: KET Test Code: URT007 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[089765] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: BLD Test Code: URT008 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[107730] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: PRO Test Code: URT005 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[125669] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: PH Test Code: UA001 Result: 6 Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[139632] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: SGP Test Code: UA002 Result: 1.022 Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[155589] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: NIT Test Code: URT042 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[171547] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: LEU Test Code: URT043 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[191494] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: GLU Test Code: URT006 Result: Neg Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[198476] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: VITC Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[206454] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: CA Test Code: Result: 2.5 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[212438] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: CRE Test Code: Result: 17.7 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[217425] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: mALB Test Code: Result: 10 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[222411] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: COLOR Test Code: Result: Yellow Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[227398] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: TURB Test Code: Result: Clear Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[232385] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: AC Test Code: Result: 5.00 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[237372] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: PC Test Code: Result: 0.00 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[251335] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: RBCU Test Code: URT055 Result: 0-1 Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[266295] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: WBCU Test Code: URT009 Result: 1-2 Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[271281] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: WBCC Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[276268] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: BACT Test Code: Result: Few Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[281255] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: YST Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[287239] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: CRYS Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[293223] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: HYAC Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[299207] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: UNCC Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[303196] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: MUC Test Code: Result: Trace Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[308183] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: NORMOCYTE# Test Code: Result: 100 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[313170] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: ACARBC Test Code: Result: 0 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[318156] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: BACTC Test Code: Result: Few Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[323143] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: BACTR Test Code: Result: Few Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[328130] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: GHORBC Test Code: Result: 0 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[344087] >> Insert LN: 67528633 Barcode: 6752863305 Anacode: SEC Test Code: URT011 Result: 0-1 Status: Result Flag: - complete!!! \n" " \n" "18:45:06.[349074] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: NEC Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[354061] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: CAOXM Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[360045] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: CAOXD Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[366029] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: TRI Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[375005] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: URI Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[380989] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: SPRM Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[384978] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: MICRBC Test Code: Result: 0 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[389965] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: OABRBC Test Code: Result: 0 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[394952] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: OTHER Test Code: Result: 0-1 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[399938] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: POIKILOCYTE% Test Code: Result: 0 Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[406920] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Coarse granular Cast Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[411907] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Fine granular Cast Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[416893] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Waxy Cast Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[421880] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Bladder epithelial cell Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[426867] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Renal epithelial cell Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[431853] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Caudate epithelial cell Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n" " \n" "18:45:06.[436841] >> Can't insert LN: 67528633 Barcode: 6752863305 Anacode: Amorphous Test Code: Result: - Status: Result Flag: - Cause: testcode is empty. \n") 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