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

/
/
gim

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 = "(?<Lot>^\\d+( \\w)?)\\s+(?<Rep>\\w{3})\\s(?<State>\\w{2})\\s(?<Consignor>[\\w\\s\\d,.&-\\/]{1,30})\\s(?<Head>\\d{1,4}(\\/\\d{1,4})?)\\s+(?<Kind>[a-z\\s,.&\\/]{1,30})\\s(?<Wt>\\d{1,4}(\\/\\d{1,4})?)\\s+(?<StartDate>\\d?\\d\\/\\d?\\d\\/(\\d\\d)?\\d\\d)\\s(?<EndDate>\\d?\\d\\/\\d?\\d\\/(\\d\\d)?\\d\\d)\\s+(?<Price>\\$?\\d+,?\\d+\\.\\d+)\\n"; final String string = " WESTERN VIDEO MARKET - PRICE REPORT - June 7th, 2018\n\n" + "LOT REP CONSIGNOR HEAD COUNT WT SHIP DATE PRICE\n" + "101 SLA OR CRUMP RANCH - ED STABB 46 Bred Heifers 1050 1/11/2008 1/18/2008 1,110.00\n" + "102 SLA NV CRAIG & JEAN SPRATLING 52 Bred Heifers 970 1/15/2008 1/25/2008 1,050.00\n" + "102 1 SLA OR MRS. BLAINE ALLEN 100 Bred Heifers 1000 1/10/2008 1/15/2008 $950.00\n\n\n" + "LOT REP CONSIGNOR HEAD COUNT WT SHIP DATE PRICE\n" + "102 1 SLA OR MRS. BLAINE ALLEN 100 Bred Heifers 1000 1/10/2008 1/15/2008 $950.00\n\n" + "7049 1 OLA NE RUNDBACK & MUELLER 350 Spayed Heifers 880 8/25/2010 9/5/2010 $103.75\n" + "7049 2 OLA NE RUNDBACK & MUELLER 175 Spayed Heifers 880 8/25/2010 9/5/2010 $103.25\n" + "7049 3 OLA NE RUNDBACK & MUELLER 400 Spayed Heifers 880 8/25/2010 9/5/2010 $103.00\n\n" + "301 SLA NV S.A.S. 90 Holst. Steers 590 2/3/2009 2/10/2009 $57.75\n" + "302 SLA OR KETSCHER CATTLE CO. 55/55 Weaned Steers/W 450/450 2/1/2009 2/10/2009 $116.00\n" + "303 SLA OR MAYNARD ALVES 115 Weaned Steers 400 2/8/2009 2/12/2009 $115.00\n\n" + "6001 TSM CA WORK RANCH 55/50 Weaned Steers/W 450/450 06/10/18 06/25/18 $170.50 $155.00\n" + "6002 TSM CA BOSTON RANCH 78 Weaned Steers 625 06/20/18 06/30/18 $172.00\n" + "6003 TSM CA FLYNN CATTLE CO. 168 Heifer Calves 585 06/18/18 06/25/18 $161.00\n" + "6003 A TSM CA RIGHETTI RANCH CO. 40/46 Steer Calves/Heife 560/560 06/12/18 06/22/18 $164.00 $152.00\n" + "6003 B TSM CA BLAKE CATTLE CO. 45/50 Steers/Heifers 500/525 06/10/18 06/15/18 $159.50 $141.50\n" + "6004 SLA CA ANTELOPE CREEK CATTLE 80 Heifer Calves 615 06/08/18 06/15/18 $157.00\n" + "6005 SLA CA ANTELOPE CREEK CATTLE 60/20 Heifer Calves/Stee 615/615 06/08/18 06/15/18 $158.00 $172.00\n" + "6006 SLA CA BILL & D.C. DONATI 45/35 Steer Calves/Heife 660/600 06/11/18 06/11/18 $155.00 $143.00\n" + "6007 HAY CA LONE PINE RANCH 74 Steer Calves 665 06/20/18 06/30/18 $160.00\n" + "6008 HAY CA LONE PINE RANCH 126 Steer Calves 765 06/20/18 06/30/18 $144.00\n" + "6009 HAY CA LONE PINE RANCH 152 Heifer Calves 650 07/06/18 07/16/18 $142.00\n" + "6010 SLA CA ANTELOPE CREEK CATTLE 75 Steer Calves 650 06/08/18 06/15/18 $163.00\n" + "6011 SLA CA ANTELOPE CREEK CATTLE 67 Steer Calves 735 06/08/18 06/15/18 $147.50\n" + "6012 SLA CA ANTELOPE CREEK CATTLE 64 Steer Calves 775 06/08/18 06/15/18 $143.50\n" + "6013 SLA CA ANTELOPE CREEK CATTLE 60 Steer Calves 835 06/08/18 06/15/18 $138.00\n" + "6014 SLA CA JOHN TISCORNIA 200/100 Steer Calves/Heife 835/760 06/17/18 06/18/18 $133.00 $125.00\n" + "6015 SLA CA SL CATTLE CO. 65 Steer Calves 745 06/15/18 06/30/18 $161.00\n" + "6016 SLA CA SL CATTLE CO. 60 Steer Calves 790 06/15/18 06/30/18 $142.50\n" + "6016 A TSM CA MARETTI & MINETTI RANCH 150 Steer Calves 675 06/25/18 06/25/18 $154.00\n" + "6016 B TSM CA RIGHETTI RANCH CO. 72 Steer Calves 675 06/12/18 06/22/18 $150.50\n" + "6017 SLA CA GILLILAND LIVESTOCK INC. 240 Weaned Steers 695 06/14/18 06/20/18 $162.00\n" + "6018 SLA CA GILLILAND LIVESTOCK INC. 68 Weaned Heifers 750 06/14/18 06/20/18 $143.50\n" + "6019 SLA CA ROBBEN RANCH 280 Weaned Steers 710 06/11/18 06/15/18 $165.00\n" + "6020 SLA CA ROBBEN RANCH 180 Weaned Steers 795 06/11/18 06/15/18 $154.75\n" + "6021 SLA CA SHAWN BOURDET 200 Weaned Steers 715 07/02/18 07/02/18 $154.00\n" + "6022 SLA CA SHAWN BOURDET 74 Weaned Heifers 650 06/27/18 06/27/18 $143.50\n" + "6023 SLA CA TERRY ZIMMERMAN 70 Weaned Heifers 710 06/28/18 07/02/18 $138.00\n" + "6024 SLA CA DRAYER TRUST 71 Weaned Steers 725 07/01/18 07/06/18 $139.50\n" + "6024 A TSM CA CAL POLY RANCHES 73 Weaned Steers 675 06/09/18 06/12/18 $150.00\n" + "6025 SLA CA JP RANCHES 136 Weaned Steers 725 06/10/18 06/19/18 $150.00\n" + "6026 SLA CA JP RANCHES 75 Weaned Heifers 635 06/10/18 06/19/18 $150.00\n" + "6027 SLA CA CHARLIE & BECKY DEFORE 62 Weaned Steers 780 06/10/18 06/15/18 $140.00\n" + "6028 TSM CA MF CATTLE/TOM & TINA FAN 45/25 Weaned Steers/W 760/710 06/10/18 06/25/18 $140.00 $125.00\n" + "6028 A TSM CA BLAKE CATTLE CO. 74 Steers 650 06/10/18 06/15/18 $153.00\n" + "6029 SLA CA ROBBEN RANCH 72 Steers 725 06/11/18 06/15/18 $143.00\n" + "6030 SLA CA ROBBEN RANCH 280 Heifers 700 06/11/18 06/15/18 $132.00\n" + "6031 SLA CA DAVID & BECKY GIBB 65 Heifers 725 06/08/18 06/15/18 $136.50\n" + "6032 SLA CA GILLILAND LIVESTOCK INC. 300 Steers 825 06/11/18 06/16/18 $138.00\n" + "6033 SLA CA CHARLIE & BECKY DEFORE 56 Weaned Steers 875 06/10/18 06/15/18 $132.00\n" + "6034 SLA CA TOM & TERRY BENGARD 120 Steers 850 06/18/18 06/23/18 $156.50\n" + "6035 SLA CA TOM & TERRY BENGARD 112 Steers 860 06/18/18 06/23/18 $156.00\n" + "6036 SLA NV JSM LIVESTOCK MGMNT LL 360 Steers 800 06/20/18 06/30/18 $135.50\n" + "6037 SLA NV HENDRIX RANCH 75 Steers 835 06/11/18 06/15/18 $134.00\n" + "6038 SLA CA BILL & D.C. DONATI 93 Steers 875 06/10/18 06/10/18 $127.00\n" + "6038 A SLA CA LUCKY 7 RANCH 55 Steers 890 06/09/18 06/09/18 $131.00\n" + "6039 SLA OR FLYNN & SONS dba FLYNN & 102 Steers 925 06/11/18 06/14/18 $151.00\n" + "6040 SLA OR FLYNN & SONS dba FLYNN & 51 Steers 925 06/11/18 06/14/18 $150.00\n" + "6040 A SLA CA A.N. HUNT & SONS 110 Steers 880 06/15/18 06/30/18 $131.00\n" + "6041 SLA CA A.N. HUNT & SONS 240 Heifers 830 06/15/18 06/30/18 $125.25\n" + "6042 TSM OR PARSNIP PEAK CATTLE CO. 58 Heifers 840 06/08/18 06/12/18 $129.85\n" + "6042 A TSM CA EL DORADO 280 Steers 875 06/11/18 06/18/18 $133.00\n" + "6042 B TSM CA EL DORADO 165 Steers 875 06/11/18 06/13/18 $131.50\n" + "6042 C TSM CA EL DORADO 240 Heifers 835 06/18/18 06/22/18 $129.00\n" + "6042 D TSM CA EL DORADO 320 Heifers 875 06/11/18 06/16/18 $126.75\n" + "6042 E TSM CA EL DORADO 150 Steers 985 06/11/18 06/13/18 $122.00\n" + " Page 1"; final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | 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