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"
"
igm

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 = "(([a-z]*[.:]*)\\s*((\\d*[.]\\d*)+$))"; final String string = "\"LOWE’S HOME CENTERS, INC.\n" + "5770 READ BOULEUARD NEW ORLEANS, LA 70127 (504) 613-1800\n" + "- SALE - SALES 4: S2690BC1 1295021 07-17-10\n" + "296458 COMM SERIES QUANTUM 3 BUR 149.00\n" + "SUBTOTAL: 149.00\n" + "TAX: 13.41\n" + "INUOICE 18327 TOTAL: 162.41\n" + "MERCH/GIFT CARDS : 162.41\n" + "MERCH/GIFT CARD 7334 AUTHCODE 005450 BEGIN BAL TRANSACTION AMT ENDING BAL 216.91 162.41 54.50\n" + "STORE: 2690 TERMINAL: 18 07/17/10 09:13:09\n" + "OF ITEMS PURCHASED: 1\"\n" + "Grocery_receipts_001.docx.txt,\"Walmart x'c\n" + "Save money. Live better. •\n" + "(813) 932-0562 Manager COLLEEN BRICKEY 8885 N FLORIDA AVE TAMPA FL 33604\n" + "ST# 5221 OP#\n" + " 00001061 TE# 06\n" + " TR# 05332\n" + " BREAD\n" + " 007225003712 F\n" + " 2.88\n" + " N\n" + " BREAD\n" + " 007225003712 F\n" + " 2.88\n" + " N\n" + " GV PNT BUTTR\n" + " 007874237003 F\n" + " 3.84\n" + " N\n" + " GV PNT BUTTR\n" + " 007874237003 F\n" + " 3.84\n" + " N\n" + " GV PNT BUTTR\n" + " 007874237003 F\n" + " 3.84\n" + " N\n" + " GV PNT BUTTR\n" + " 007874237003 F\n" + " 3.84\n" + " N\n" + " GV PARM 160Z\n" + " 007874201510 F\n" + " 4.98\n" + " 0\n" + " GV CHNK CHKN\n" + " 007874206784 F\n" + " 1.98\n" + " N\n" + " GV CHNK CHKN\n" + " 007874206784 F\n" + " 1.98\n" + " N\n" + " 12 CT NITRIL\n" + " 073191913822\n" + " 2.78\n" + " X\n" + " FOLGERS\n" + " 002550000377 F\n" + " 10.48\n" + " N\n" + " SC TUIST UP\n" + " 007874222682 F\n" + " 0.84\n" + " X\n" + " EGGS\n" + " 060538871459 F\n" + " 1.88\n" + " 0\n" + " \n\n" + " SUBTOTAL\n" + " 46.04\n" + " \n\n" + " TAX\n" + " 1 7.000 X\n" + " 0.26\n" + " \n\n" + " \n\n" + " TOTAL\n" + " 46.30\n" + " \n\n" + " \n\n" + " DEBIT TEND\n" + " 46.30\n" + " \n\n" + " \n\n" + " CHANGE DUE\n" + " 0.00\n" + " \n\n" + " \n\n" + "EFT DEBIT PAY FROM PRIMARY\n" + "ACCOUNT : 5259\n" + "1. TOTAL PURCHASE\n" + "PAYMENT DECLINED DEBIT NOT AVAILABLE 11/06/11 02:21:54\n" + "EFT DEBIT PAY FROM PRIMARY\n" + "ACCOUNT : 5259\n" + "1. TOTAL PURCHASE REF # 131000195280\n" + "NETWORK ID. 0071 APPR CODE 297664 11/06/11 02:22:54\n\n" + "ft ITEMS SOLD 13\n" + "TC# 0432 2121 1542 2401 9590\n" + " \n\n" + "Lagawag Is back for Electronics, Togs, and Jewelrg. 10/17/11-12/16/11 11/06/11 02:22:59\"\n" + "traderjoes-receipt1.docx.txt,\"TRADER JOE’S\n\n\n\n\n\n\n\n\n\n\n" + " \n\n" + "“V.\n" + "\\L3P\n" + "2-49 T 0.10 T\n" + "OPEN 8:00AM TO 10:00PM DAILY\n" + "* LOWFAT 1% MILK - HALF GALLON ^GROCERY NON TAXABLE\n" + "1. 6 0.59 ^GROCERY NON TAXABLE\n" + "2. 10.19 GROCERY NON TAXABLE\n" + "^ MISSISSIPPI MUD 32 OZ CROCK\n" + "* CRY\n" + "“• TJ!S VEGGIE STIX £ BAGEL MINI WHEAT 4 PK\n" + "* CHICKEN CH2 YMEIN STIR FRY MIX\n" + "* PIZZA ORGANIC SICILIA?? STYLE R « TJ'S CHEESE & GARLIC CROUTONS\n" + "* LA GRANJA SYRAH LES CAVES JOSEPH BORDEAUX\n" + "* CHICKEN ORANGE MANDARIN W/SCE\n" + "* DARK CHOCOLATE ROCKY ROAD SQUA\n" + " \n\n" + "* RESTAURANT-STYLE WHITE CHIPS ~ SLICED TURKEY ROASTED o CRACKERS MULTIGRAIN ^ SALSA CHIPOTLE HOT -FRESH PK BOYSENBERRY PRESERVES\n" + "* CHUNKY SALTED PEANUT BUTTER\n" + "* TJ SLICED JACK W/PEPPERS «* SORRENTO SALAD TJ'S\n" + "* CHOC BAR FLD'DRKSPEC « CHOC BAR FLD DRKSPEC\n" + "$66.87\n" + "$0.91\n" + "$67.78\n" + "$67.78\n" + "SUBTOTAL STATE TAX 1 TOTAL DEBIT\n" + "PURCHASE SWIPED AUTH# 402241 INVOICE #: 5876\n" + ",199,,00,\n" + "02-09-2012 06:45PM REFERENCE #: 293536\n\n\n" + "ITEMS 33 S, Christian\n" + "02-09-2012 06:43PM 0199 04 0098 5876\n" + "THANK YOU FOR SHOPPING AT TRADER JOE'S www.traderjoes.com\"\n" + "transaction-1.docx.txt,\"The Pharmacy America Trusts • Since 1901\"\"\n" + "I'm MARILYN. Thank you for allowing me to serve you today,\n" + "502 10 9032 05988 027\n" + "RFN# 0598-8279-0320-1003-2820\n" + "F SMPLY SLN ALL4.25Z 1A 7.00 SALE\n" + "F DULC0LAX 8.30Z 1A 10.00 SALE\n" + "DOVE TRTMN M0IST8Z 1A 4.00 SALE\n" + "MFG COUPON 1 1.50-MFGC\n" + "MFG COUPON 1 4.00-MFGC\n" + "MFG COUPON 1 5.00-MFGC\n" + "SUBTOTAL 10.50\n" + "A-6.85% SALES TAX TOTAL\n" + "CASH 12.00\n" + "CHANGE .06\n" + "HAG ADVERTISED SAVINGS: 7.97\n" + "MFG COUPON SAVINGS: 10.50\n" + "YOUR TOTAL SAVINGS: 18.47\n"; 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