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
No Match

r"
"
gm

Test String

Code Generator

Generated Code

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "BCF-(\\d+)\\s+([\\w]+)[A-Z\\s\\d\\-]+(?:BTS-\\d+[\\sA-Z-]+\\d+\\s+\\d+\\s+)([A-Z]+)"; final String string = "BCF-1522 FLEXI EDGE U WO 4 B1522 WO\n" + " 01137 22186 BTS-1522 U WO 1 0\n" + " CALLEORIN6 RF/-\n" + " 23\n" + " TRX-001 U WO 673 0 1787 MBCCH P 10\n" + " TRX-002 U WO 681 0 1787 9\n" + " TRX-003 U WO 663 0 1787 8\n" + " TRX-004 U WO 659 0 1787 6\n" + " 01137 22187 BTS-1523 U WO 0 1\n" + " CALLEORIN7 RF/-\n" + " 24\n" + " TRX-005 U WO 675 0 320 MBCCH P 8\n" + " TRX-006 U WO 657 0 320 10\n" + " TRX-007 U WO 665 0 320 4\n" + " TRX-008 U WO 638 0 320 0\n" + " 01137 22188 BTS-1524 U WO 0 0\n" + " CALLEORIN8 RF/-\n" + " 16\n" + " TRX-009 U WO 651 0 1729 MBCCH P 7\n" + " TRX-010 U WO 643 0 1729 4\n" + " TRX-011 U WO 648 0 1729 7\n\n" + "BCF-1526 ULTRASITE U BL-BCF 7 B1526 WO\n" + " 01134 01186 BTS-1526 U BL-BCF 0 0\n" + " LDANIELAS6 RF/-\n" + " 0\n" + " EDGE TRX-001 U BL-BCF 672 0 1736 MBCCH P 2\n" + " EDGE TRX-002 U BL-BCF 674 0 1736 0\n" + " EDGE TRX-003 U BL-BCF 657 0 1737 5\n" + " EDGE TRX-004 U BL-BCF 648 0 1737 6\n" + " 01134 01187 BTS-1527 U BL-BCF 0 0\n" + " LDANIELAS7 RF/-\n" + " 0\n" + " EDGE TRX-005 U BL-BCF 645 0 1736 2\n" + " EDGE TRX-006 U BL-BCF 639 0 1736 0\n" + " EDGE TRX-007 U BL-BCF 683 0 1736 MBCCH P 5\n" + " EDGE TRX-008 U BL-BCF 641 0 1736 6\n" + " 01134 01188 BTS-1528 U BL-BCF 0 0\n" + " LDANIELAS8 RF/-\n" + " 0\n" + " EDGE TRX-009 U BL-BCF 662 0 1737 MBCCH P 7\n" + " EDGE TRX-010 U BL-BCF 643 0 1737 2\n" + " EDGE TRX-011 U BL-BCF 652 0 1737 0\n" + " EDGE TRX-012 U BL-BCF 664 0 1737 5\n\n" + "BCF-1540 ULTRASITE L BL-USR 3 B1540 BL\n" + " 01134 12543 BTS-0055 L BL-USR 0 0\n" + " SANTAINES3 RF/-\n" + " 0\n" + " EDGE TRX-001 U BL-USR 128 0 1773 MBCCH P 9\n" + " EDGE TRX-003 U BL-USR 145 0 1773 10\n" + " EDGE TRX-004 U BL-USR 237 0 1773 4\n" + " EDGE TRX-005 U BL-USR 155 0 1773 2\n" + " EDGE TRX-006 U BL-USR 233 0 1773 9\n" + " EDGE TRX-007 U BL-USR 150 0 1773 10\n" + " 01134 12548 BTS-0057 L BL-USR 0 0\n" + " SANTAINES8 RF/-\n" + " 0\n" + " EDGE TRX-008 U BL-USR 669 0 1361 MBCCH P 6\n" + " EDGE TRX-010 U BL-USR 643 0 1361 4\n" + " EDGE TRX-011 U BL-USR 683 0 1361 2\n" + " EDGE TRX-012 U BL-USR 664 0 1361 9\n\n" + "BCF-1543 ULTRASITE U WO 6 B1543 WO\n" + " 01137 12822 BTS-0206 U WO 0 0\n" + " VERACRUZ2 RF/-\n" + " 0\n" + " EDGE TRX-001 U WO 137 0 1771 MBCCH P 10\n" + " EDGE TRX-002 U BL-RSL 128 0 1771 8\n" + " EDGE TRX-003 U WO 139 0 1771 10\n" + " 01137 12828 BTS-0717 U WO 1 0\n" + " VERACRUZ8 RF/-\n" + " 8\n" + " EDGE TRX-005 U WO 678 0 1735 MBCCH P 0\n" + " EDGE TRX-007 U BL-RSL 655 0 1735 3\n" + " EDGE TRX-008 U WO 649 0 1735 6\n" + " EDGE TRX-009 U BL-RSL 657 0 1735 3\n\n" + "BCF-1615 ULTRASITE U WO 2 B1615 WO\n" + " 01139 10012 BTS-0086 L BL-USR 0 0\n" + " ADRIATICA2 RF/-\n" + " 0\n" + " EDGE TRX-001 U BL-USR 135 0 1366 MBCCH P 10\n" + " EDGE TRX-003 U BL-USR 133 0 1366 10\n" + " EDGE TRX-004 U BL-USR 147 0 1366 9\n" + " EDGE TRX-005 U BL-USR 153 0 1682 10\n" + " EDGE TRX-006 U BL-USR 155 0 1682 4\n\n"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE); final Matcher matcher = pattern.matcher(string); while (matcher.find()) { System.out.println("Full match: " + matcher.group(0)); for (int i = 1; i <= matcher.groupCount(); i++) { System.out.println("Group " + i + ": " + matcher.group(i)); } } } }

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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html