Regular Expressions 101

Save & Share

  • Regex Version: ver. 4
  • 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

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Example { public static void main(String[] args) { final String regex = "(MacBook[1-7],\\d|MacBookAir[1-4],\\d|MacBookPro[1-8],\\d|Macmini[1-5],\\d|iMac(1[0-2]|[4-9]|),\\d|^MacPro[1-5],\\d$)"; final String string = "Model information: https://support.apple.com/en-us/HT210222\n" + "Published Date: February 01, 2021\n\n" + "Validation: https://regex101.com/r/p5r9WT/3/\n\n" + "This regex is exact. No new models are supported.\n\n" + "(MacBookAir[5-9]|MacBookPro(9|1[0-6])|MacPro[6-7]|iMac(Pro1|1[3-9]|20)|MacBook(10|9|8)|Macmini[6-8]),\\d\n\n" + "pattern matches:\n\n" + "https://support.apple.com/en-us/HT201608\n\n" + "Supported:\n" + "MacBook10,1\n" + "MacBook9,1\n" + "MacBook8,1\n\n" + "Unsupported:\n" + "MacBook7,1\n" + "MacBook6,1\n" + "MacBook5,2\n" + "MacBook5,1\n" + "MacBook4,1\n" + "MacBook3,1\n" + "MacBook2,1\n" + "MacBook1,1\n\n" + "https://support.apple.com/en-us/HT201862\n\n" + "Supported:\n" + "MacBookAir9,1\n" + "MacBookAir8,2\n" + "MacBookAir8,1\n" + "MacBookAir7,2\n" + "MacBookAir7,2\n" + "MacBookAir7,1\n" + "MacBookAir6,2\n" + "MacBookAir6,1\n" + "MacBookAir6,2\n" + "MacBookAir6,1\n" + "MacBookAir5,2\n" + "MacBookAir5,1\n\n" + "Unsupported:\n" + "MacBookAir4,2\n" + "MacBookAir4,1\n" + "MacBookAir3,2\n" + "MacBookAir3,1\n" + "MacBookAir2,1\n" + "MacBookAir1,1\n\n" + "https://support.apple.com/en-us/HT201300\n\n" + "Supported:\n" + "MacBookPro16,3\n" + "MacBookPro16,2\n" + "MacBookPro16,1\n" + "MacBookPro15,4\n" + "MacBookPro15,3\n" + "MacBookPro15,2\n" + "MacBookPro15,1\n" + "MacBookPro14,3\n" + "MacBookPro14,2\n" + "MacBookPro14,1\n" + "MacBookPro13,3\n" + "MacBookPro13,2\n" + "MacBookPro13,1\n" + "MacBookPro11,5\n" + "MacBookPro11,4\n" + "MacBookPro12,1\n" + "MacBookPro11,3\n" + "MacBookPro11,2\n" + "MacBookPro11,1\n" + "MacBookPro10,1\n" + "MacBookPro11,1\n" + "MacBookPro10,2\n" + "MacBookPro10,1\n" + "MacBookPro9,2\n" + "MacBookPro9,1\n\n" + "Unsupported:\n" + "MacBookPro8,3\n" + "MacBookPro8,2\n" + "MacBookPro8,1\n" + "MacBookPro7,1\n" + "MacBookPro6,2\n" + "MacBookPro6,1\n" + "MacBookPro5,5\n" + "MacBookPro5,4\n" + "MacBookPro5,3\n" + "MacBookPro5,2\n" + "MacBookPro5,1\n" + "MacBookPro4,1\n" + "MacBookPro3,1\n" + "MacBookPro2,2\n" + "MacBookPro2,1\n" + "MacBookPro1,2\n" + "MacBookPro1,1\n\n" + "https://support.apple.com/en-us/HT201894\n\n" + "Supported:\n" + "Macmini8,1\n" + "Macmini7,1\n" + "Macmini6,2\n" + "Macmini6,1\n\n" + "Unsupported:\n" + "Macmini5,3\n" + "Macmini5,2\n" + "Macmini5,1\n" + "Macmini4,1\n" + "Macmini3,1\n" + "Macmini2,1\n" + "Macmini1,1\n\n" + "https://support.apple.com/en-us/HT201634\n\n" + "Supported:\n" + "iMac20,2\n" + "iMac20,1\n" + "iMac19,2\n" + "iMac19,1\n" + "iMac18,3\n" + "iMac18,2\n" + "iMac18,1\n" + "iMac17,1\n" + "iMac16,2\n" + "iMac16,1\n" + "iMac15,1\n" + "iMac14,4\n" + "iMac14,3\n" + "iMac14,2\n" + "iMac14,1\n" + "iMac13,2\n" + "iMac13,1\n\n" + "Unsupported:\n" + "iMac12,2\n" + "iMac12,1\n" + "iMac11,3\n" + "iMac11,2\n" + "iMac11,1\n" + "iMac10,1\n" + "iMac9,1\n" + "iMac8,1\n" + "iMac7,1\n" + "iMac6,1\n" + "iMac5,2\n" + "iMac5,1\n" + "iMac4,2\n" + "iMac4,1\n" + "iMac,1\n\n" + "https://support.apple.com/en-us/HT210222\n\n" + "Supported:\n" + "iMacPro1,1\n\n" + "https://support.apple.com/en-us/HT202888\n\n" + "Supported:\n" + "MacPro7,1\n" + "MacPro6,1\n\n" + "Unsupported:\n" + "MacPro5,1\n" + "MacPro4,1\n" + "MacPro3,1\n" + "MacPro2,1\n" + "MacPro1,1"; 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