Regular Expressions 101

Save & Share

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

/
/
gmx

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 = "^(?:([0-1])|(2)|(3))(?(1)[0-9])(?(2)(?:([0-8])|(9)))(?(3)[0-1])\\/(?:(01|03|05|07|09|11)|(04|06|08|10|12)|(02))(?(3)(?(8)(?!)))\\/(?:(04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)|(\\d\\d))(?:(00)|(04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)|\\d{2})(?(2)(?(5)(?(8)(?(11)(?(9)|(?!))|(?(12)|(?!))))))"; final String string = "29/02/1200\n" + "29/02/1400\n" + "01/01/1999\n" + "02/01/1999\n" + "03/01/1999\n" + "04/01/1999\n" + "05/01/1999\n" + "06/01/1999\n" + "07/01/1999\n" + "08/01/1999\n" + "09/01/1999\n" + "10/01/1999\n" + "11/01/1999\n" + "12/01/1999\n" + "13/01/1999\n" + "14/01/1999\n" + "15/01/1999\n" + "16/01/1999\n" + "17/01/1999\n" + "18/01/1999\n" + "19/01/1999\n" + "20/01/1999\n" + "21/01/1999\n" + "22/01/1999\n" + "23/01/1999\n" + "24/01/1999\n" + "25/01/1999\n" + "26/01/1999\n" + "27/01/1999\n" + "28/01/1999\n" + "29/01/1999\n" + "30/01/1999\n" + "31/01/1999\n" + "01/02/1999\n" + "02/02/1999\n" + "03/02/1999\n" + "04/02/1999\n" + "05/02/1999\n" + "06/02/1999\n" + "07/02/1999\n" + "08/02/1999\n" + "09/02/1999\n" + "10/02/1999\n" + "11/02/1999\n" + "12/02/1999\n" + "13/02/1999\n" + "14/02/1999\n" + "15/02/1999\n" + "16/02/1999\n" + "17/02/1999\n" + "18/02/1999\n" + "19/02/1999\n" + "20/02/1999\n" + "21/02/1999\n" + "22/02/1999\n" + "23/02/1999\n" + "24/02/1999\n" + "25/02/1999\n" + "26/02/1999\n" + "27/02/1999\n" + "28/02/1999\n" + "01/03/1999\n" + "02/03/1999\n" + "03/03/1999\n" + "04/03/1999\n" + "05/03/1999\n" + "06/03/1999\n" + "07/03/1999\n" + "08/03/1999\n" + "09/03/1999\n" + "10/03/1999\n" + "11/03/1999\n" + "12/03/1999\n" + "13/03/1999\n" + "14/03/1999\n" + "15/03/1999\n" + "16/03/1999\n" + "17/03/1999\n" + "18/03/1999\n" + "19/03/1999\n" + "20/03/1999\n" + "21/03/1999\n" + "22/03/1999\n" + "23/03/1999\n" + "24/03/1999\n" + "25/03/1999\n" + "26/03/1999\n" + "27/03/1999\n" + "28/03/1999\n" + "29/03/1999\n" + "30/03/1999\n" + "31/03/1999\n" + "01/04/1999\n" + "02/04/1999\n" + "03/04/1999\n" + "04/04/1999\n" + "05/04/1999\n" + "06/04/1999\n" + "07/04/1999\n" + "08/04/1999\n" + "09/04/1999\n" + "10/04/1999\n" + "11/04/1999\n" + "12/04/1999\n" + "13/04/1999\n" + "14/04/1999\n" + "15/04/1999\n" + "16/04/1999\n" + "17/04/1999\n" + "18/04/1999\n" + "19/04/1999\n" + "20/04/1999\n" + "21/04/1999\n" + "22/04/1999\n" + "23/04/1999\n" + "24/04/1999\n" + "25/04/1999\n" + "26/04/1999\n" + "27/04/1999\n" + "28/04/1999\n" + "29/04/1999\n" + "30/04/1999\n" + "01/05/1999\n" + "02/05/1999\n" + "03/05/1999\n" + "04/05/1999\n" + "05/05/1999\n" + "06/05/1999\n" + "07/05/1999\n" + "08/05/1999\n" + "09/05/1999\n" + "10/05/1999\n" + "11/05/1999\n" + "12/05/1999\n" + "13/05/1999\n" + "14/05/1999\n" + "15/05/1999\n" + "16/05/1999\n" + "17/05/1999\n" + "18/05/1999\n" + "19/05/1999\n" + "20/05/1999\n" + "21/05/1999\n" + "22/05/1999\n" + "23/05/1999\n" + "24/05/1999\n" + "25/05/1999\n" + "26/05/1999\n" + "27/05/1999\n" + "28/05/1999\n" + "29/05/1999\n" + "30/05/1999\n" + "31/05/1999\n" + "01/06/1999\n" + "02/06/1999\n" + "03/06/1999\n" + "04/06/1999\n" + "05/06/1999\n" + "06/06/1999\n" + "07/06/1999\n" + "08/06/1999\n" + "09/06/1999\n" + "10/06/1999\n" + "11/06/1999\n" + "12/06/1999\n" + "13/06/1999\n" + "14/06/1999\n" + "15/06/1999\n" + "16/06/1999\n" + "17/06/1999\n" + "18/06/1999\n" + "19/06/1999\n" + "20/06/1999\n" + "21/06/1999\n" + "22/06/1999\n" + "23/06/1999\n" + "24/06/1999\n" + "25/06/1999\n" + "26/06/1999\n" + "27/06/1999\n" + "28/06/1999\n" + "29/06/1999\n" + "30/06/1999\n" + "01/07/1999\n" + "02/07/1999\n" + "03/07/1999\n" + "04/07/1999\n" + "05/07/1999\n" + "06/07/1999\n" + "07/07/1999\n" + "08/07/1999\n" + "09/07/1999\n" + "10/07/1999\n" + "11/07/1999\n" + "12/07/1999\n" + "13/07/1999\n" + "14/07/1999\n" + "15/07/1999\n" + "16/07/1999\n" + "17/07/1999\n" + "18/07/1999\n" + "19/07/1999\n" + "20/07/1999\n" + "21/07/1999\n" + "22/07/1999\n" + "23/07/1999\n" + "24/07/1999\n" + "25/07/1999\n" + "26/07/1999\n" + "27/07/1999\n" + "28/07/1999\n" + "29/07/1999\n" + "30/07/1999\n" + "31/07/1999\n" + "01/08/1999\n" + "02/08/1999\n" + "03/08/1999\n" + "04/08/1999\n" + "05/08/1999\n" + "06/08/1999\n" + "07/08/1999\n" + "08/08/1999\n" + "09/08/1999\n" + "10/08/1999\n" + "11/08/1999\n" + "12/08/1999\n" + "13/08/1999\n" + "14/08/1999\n" + "15/08/1999\n" + "16/08/1999\n" + "17/08/1999\n" + "18/08/1999\n" + "19/08/1999\n" + "20/08/1999\n" + "21/08/1999\n" + "22/08/1999\n" + "23/08/1999\n" + "24/08/1999\n" + "25/08/1999\n" + "26/08/1999\n" + "27/08/1999\n" + "28/08/1999\n" + "29/08/1999\n" + "30/08/1999\n" + "31/08/1999\n" + "01/09/1999\n" + "02/09/1999\n" + "03/09/1999\n" + "04/09/1999\n" + "05/09/1999\n" + "06/09/1999\n" + "07/09/1999\n" + "08/09/1999\n" + "09/09/1999\n" + "10/09/1999\n" + "11/09/1999\n" + "12/09/1999\n" + "13/09/1999\n" + "14/09/1999\n" + "15/09/1999\n" + "16/09/1999\n" + "17/09/1999\n" + "18/09/1999\n" + "19/09/1999\n" + "20/09/1999\n" + "21/09/1999\n" + "22/09/1999\n" + "23/09/1999\n" + "24/09/1999\n" + "25/09/1999\n" + "26/09/1999\n" + "27/09/1999\n" + "28/09/1999\n" + "29/09/1999\n" + "30/09/1999\n" + "01/10/1999\n" + "02/10/1999\n" + "03/10/1999\n" + "04/10/1999\n" + "05/10/1999\n" + "06/10/1999\n" + "07/10/1999\n" + "08/10/1999\n" + "09/10/1999\n" + "10/10/1999\n" + "11/10/1999\n" + "12/10/1999\n" + "13/10/1999\n" + "14/10/1999\n" + "15/10/1999\n" + "16/10/1999\n" + "17/10/1999\n" + "18/10/1999\n" + "19/10/1999\n" + "20/10/1999\n" + "21/10/1999\n" + "22/10/1999\n" + "23/10/1999\n" + "24/10/1999\n" + "25/10/1999\n" + "26/10/1999\n" + "27/10/1999\n" + "28/10/1999\n" + "29/10/1999\n" + "30/10/1999\n" + "31/10/1999\n" + "01/11/1999\n" + "02/11/1999\n" + "03/11/1999\n" + "04/11/1999\n" + "05/11/1999\n" + "06/11/1999\n" + "07/11/1999\n" + "08/11/1999\n" + "09/11/1999\n" + "10/11/1999\n" + "11/11/1999\n" + "12/11/1999\n" + "13/11/1999\n" + "14/11/1999\n" + "15/11/1999\n" + "16/11/1999\n" + "17/11/1999\n" + "18/11/1999\n" + "19/11/1999\n" + "20/11/1999\n" + "21/11/1999\n" + "22/11/1999\n" + "23/11/1999\n" + "24/11/1999\n" + "25/11/1999\n" + "26/11/1999\n" + "27/11/1999\n" + "28/11/1999\n" + "29/11/1999\n" + "30/11/1999\n" + "01/12/1999\n" + "02/12/1999\n" + "03/12/1999\n" + "04/12/1999\n" + "05/12/1999\n" + "06/12/1999\n" + "07/12/1999\n" + "08/12/1999\n" + "09/12/1999\n" + "10/12/1999\n" + "11/12/1999\n" + "12/12/1999\n" + "13/12/1999\n" + "14/12/1999\n" + "15/12/1999\n" + "16/12/1999\n" + "17/12/1999\n" + "18/12/1999\n" + "19/12/1999\n" + "20/12/1999\n" + "21/12/1999\n" + "22/12/1999\n" + "23/12/1999\n" + "24/12/1999\n" + "25/12/1999\n" + "26/12/1999\n" + "27/12/1999\n" + "28/12/1999\n" + "29/12/1999\n" + "30/12/1999\n" + "31/12/1999\n" + "01/01/2000\n" + "02/01/2000\n" + "03/01/2000\n" + "04/01/2000\n" + "05/01/2000\n" + "06/01/2000\n" + "07/01/2000\n" + "08/01/2000\n" + "09/01/2000\n" + "10/01/2000\n" + "11/01/2000\n" + "12/01/2000\n" + "13/01/2000\n" + "14/01/2000\n" + "15/01/2000\n" + "16/01/2000\n" + "17/01/2000\n" + "18/01/2000\n" + "19/01/2000\n" + "20/01/2000\n" + "21/01/2000\n" + "22/01/2000\n" + "23/01/2000\n" + "24/01/2000\n" + "25/01/2000\n" + "26/01/2000\n" + "27/01/2000\n" + "28/01/2000\n" + "29/01/2000\n" + "30/01/2000\n" + "31/01/2000\n" + "01/02/2000\n" + "02/02/2000\n" + "03/02/2000\n" + "04/02/2000\n" + "05/02/2000\n" + "06/02/2000\n" + "07/02/2000\n" + "08/02/2000\n" + "09/02/2000\n" + "10/02/2000\n" + "11/02/2000\n" + "12/02/2000\n" + "13/02/2000\n" + "14/02/2000\n" + "15/02/2000\n" + "16/02/2000\n" + "17/02/2000\n" + "18/02/2000\n" + "19/02/2000\n" + "20/02/2000\n" + "21/02/2000\n" + "22/02/2000\n" + "23/02/2000\n" + "24/02/2000\n" + "25/02/2000\n" + "26/02/2000\n" + "27/02/2000\n" + "28/02/2000\n" + "29/02/2000\n" + "01/03/2000\n" + "02/03/2000\n" + "03/03/2000\n" + "04/03/2000\n" + "05/03/2000\n" + "06/03/2000\n" + "07/03/2000\n" + "08/03/2000\n" + "09/03/2000\n" + "10/03/2000\n" + "11/03/2000\n" + "12/03/2000\n" + "13/03/2000\n" + "14/03/2000\n" + "15/03/2000\n" + "16/03/2000\n" + "17/03/2000\n" + "18/03/2000\n" + "19/03/2000\n" + "20/03/2000\n" + "21/03/2000\n" + "22/03/2000\n" + "23/03/2000\n" + "24/03/2000\n" + "25/03/2000\n" + "26/03/2000\n" + "27/03/2000\n" + "28/03/2000\n" + "29/03/2000\n" + "30/03/2000\n" + "31/03/2000\n" + "01/04/2000\n" + "02/04/2000\n" + "03/04/2000\n" + "04/04/2000\n" + "05/04/2000\n" + "06/04/2000\n" + "07/04/2000\n" + "08/04/2000\n" + "09/04/2000\n" + "10/04/2000\n" + "11/04/2000\n" + "12/04/2000\n" + "13/04/2000\n" + "14/04/2000\n" + "15/04/2000\n" + "16/04/2000\n" + "17/04/2000\n" + "18/04/2000\n" + "19/04/2000\n" + "20/04/2000\n" + "21/04/2000\n" + "22/04/2000\n" + "23/04/2000\n" + "24/04/2000\n" + "25/04/2000\n" + "26/04/2000\n" + "27/04/2000\n" + "28/04/2000\n" + "29/04/2000\n" + "30/04/2000\n" + "01/05/2000\n" + "02/05/2000\n" + "03/05/2000\n" + "04/05/2000\n" + "05/05/2000\n" + "06/05/2000\n" + "07/05/2000\n" + "08/05/2000\n" + "09/05/2000\n" + "10/05/2000\n" + "11/05/2000\n" + "12/05/2000\n" + "13/05/2000\n" + "14/05/2000\n" + "15/05/2000\n" + "16/05/2000\n" + "17/05/2000\n" + "18/05/2000\n" + "19/05/2000\n" + "20/05/2000\n" + "21/05/2000\n" + "22/05/2000\n" + "23/05/2000\n" + "24/05/2000\n" + "25/05/2000\n" + "26/05/2000\n" + "27/05/2000\n" + "28/05/2000\n" + "29/05/2000\n" + "30/05/2000\n" + "31/05/2000\n" + "01/06/2000\n" + "02/06/2000\n" + "03/06/2000\n" + "04/06/2000\n" + "05/06/2000\n" + "06/06/2000\n" + "07/06/2000\n" + "08/06/2000\n" + "09/06/2000\n" + "10/06/2000\n" + "11/06/2000\n" + "12/06/2000\n" + "13/06/2000\n" + "14/06/2000\n" + "15/06/2000\n" + "16/06/2000\n" + "17/06/2000\n" + "18/06/2000\n" + "19/06/2000\n" + "20/06/2000\n" + "21/06/2000\n" + "22/06/2000\n" + "23/06/2000\n" + "24/06/2000\n" + "25/06/2000\n" + "26/06/2000\n" + "27/06/2000\n" + "28/06/2000\n" + "29/06/2000\n" + "30/06/2000\n" + "01/07/2000\n" + "02/07/2000\n" + "03/07/2000\n" + "04/07/2000\n" + "05/07/2000\n" + "06/07/2000\n" + "07/07/2000\n" + "08/07/2000\n" + "09/07/2000\n" + "10/07/2000\n" + "11/07/2000\n" + "12/07/2000\n" + "13/07/2000\n" + "14/07/2000\n" + "15/07/2000\n" + "16/07/2000\n" + "17/07/2000\n" + "18/07/2000\n" + "19/07/2000\n" + "20/07/2000\n" + "21/07/2000\n" + "22/07/2000\n" + "23/07/2000\n" + "24/07/2000\n" + "25/07/2000\n" + "26/07/2000\n" + "27/07/2000\n" + "28/07/2000\n" + "29/07/2000\n" + "30/07/2000\n" + "31/07/2000\n" + "01/08/2000\n" + "02/08/2000\n" + "03/08/2000\n" + "04/08/2000\n" + "05/08/2000\n" + "06/08/2000\n" + "07/08/2000\n" + "08/08/2000\n" + "09/08/2000\n" + "10/08/2000\n" + "11/08/2000\n" + "12/08/2000\n" + "13/08/2000\n" + "14/08/2000\n" + "15/08/2000\n" + "16/08/2000\n" + "17/08/2000\n" + "18/08/2000\n" + "19/08/2000\n" + "20/08/2000\n" + "21/08/2000\n" + "22/08/2000\n" + "23/08/2000\n" + "24/08/2000\n" + "25/08/2000\n" + "26/08/2000\n" + "27/08/2000\n" + "28/08/2000\n" + "29/08/2000\n" + "30/08/2000\n" + "31/08/2000\n" + "01/09/2000\n" + "02/09/2000\n" + "03/09/2000\n" + "04/09/2000\n" + "05/09/2000\n" + "06/09/2000\n" + "07/09/2000\n" + "08/09/2000\n" + "09/09/2000\n" + "10/09/2000\n" + "11/09/2000\n" + "12/09/2000\n" + "13/09/2000\n" + "14/09/2000\n" + "15/09/2000\n" + "16/09/2000\n" + "17/09/2000\n" + "18/09/2000\n" + "19/09/2000\n" + "20/09/2000\n" + "21/09/2000\n" + "22/09/2000\n" + "23/09/2000\n" + "24/09/2000\n" + "25/09/2000\n" + "26/09/2000\n" + "27/09/2000\n" + "28/09/2000\n" + "29/09/2000\n" + "30/09/2000\n" + "01/10/2000\n" + "02/10/2000\n" + "03/10/2000\n" + "04/10/2000\n" + "05/10/2000\n" + "06/10/2000\n" + "07/10/2000\n" + "08/10/2000\n" + "09/10/2000\n" + "10/10/2000\n" + "11/10/2000\n" + "12/10/2000\n" + "13/10/2000\n" + "14/10/2000\n" + "15/10/2000\n" + "16/10/2000\n" + "17/10/2000\n" + "18/10/2000\n" + "19/10/2000\n" + "20/10/2000\n" + "21/10/2000\n" + "22/10/2000\n" + "23/10/2000\n" + "24/10/2000\n" + "25/10/2000\n" + "26/10/2000\n" + "27/10/2000\n" + "28/10/2000\n" + "29/10/2000\n" + "30/10/2000\n" + "31/10/2000\n" + "01/11/2000\n" + "02/11/2000\n" + "03/11/2000\n" + "04/11/2000\n" + "05/11/2000\n" + "06/11/2000\n" + "07/11/2000\n" + "08/11/2000\n" + "09/11/2000\n" + "10/11/2000\n" + "11/11/2000\n" + "12/11/2000\n" + "13/11/2000\n" + "14/11/2000\n" + "15/11/2000\n" + "16/11/2000\n" + "17/11/2000\n" + "18/11/2000\n" + "19/11/2000\n" + "20/11/2000\n" + "21/11/2000\n" + "22/11/2000\n" + "23/11/2000\n" + "24/11/2000\n" + "25/11/2000\n" + "26/11/2000\n" + "27/11/2000\n" + "28/11/2000\n" + "29/11/2000\n" + "30/11/2000\n" + "01/12/2000\n" + "02/12/2000\n" + "03/12/2000\n" + "04/12/2000\n" + "05/12/2000\n" + "06/12/2000\n" + "07/12/2000\n" + "08/12/2000\n" + "09/12/2000\n" + "10/12/2000\n" + "11/12/2000\n" + "12/12/2000\n" + "13/12/2000\n" + "14/12/2000\n" + "15/12/2000\n" + "16/12/2000\n" + "17/12/2000\n" + "18/12/2000\n" + "19/12/2000\n" + "20/12/2000\n" + "21/12/2000\n" + "22/12/2000\n" + "23/12/2000\n" + "24/12/2000\n" + "25/12/2000\n" + "26/12/2000\n" + "27/12/2000\n" + "28/12/2000\n" + "29/12/2000\n" + "30/12/2000\n" + "31/12/2000\n\n"; final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.COMMENTS); 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