Regular Expressions 101

Save & Share

  • Regex Version: ver. 3
  • 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 = "^(?!(?!0* 0* 0*|0*+(?=(\\d*?)((?:(?=\\d+ 0*+(\\d*?)(\\d(?(4)\\4)) 0*(\\d*?)(\\d\\6?+)$)\\d)+) )(?=(?(?!\\1(?:(?=\\d+ 0*\\3((\\7?+)\\d))(?=\\d(\\d* 0*\\3\\8))(?=0\\9[9]|1\\9[8]|2\\9[7]|3\\9[6]|4\\9[5]|5\\9[4]|6\\9[3]|7\\9[2]|8\\9[1]|9\\9[0])\\d)*+(?=\\d(\\d* 0*\\3\\8?+))(?=[5-9]\\10[5-9]|1\\10[9]|2\\10[89]|3\\10[7-9]|4\\10[6-9]|6\\10[4]|7\\10[34]|8\\10[2-4]|9\\10[1-4]))(?=\\d+ \\d+ 0*\\1\\3\\6$)|(?(?!.*+\\3)\\d+ )(?=\\d*(\\2|\\4)( .*?0*+)\\d+$)(?(?=9*\\11 )(?:9(?=\\d*\\12[1](\\13?+0)))*(?=\\11 )\\11\\12[1]\\13?+\\6$|(?:(\\d)(?=\\d*\\12(\\15?+\\14)))*(?=\\d(\\d*\\12\\15?+))(?=0\\16[1]|1\\16[2]|2\\16[3]|3\\16[4]|4\\16[5]|5\\16[6]|6\\16[7]|7\\16[8]|8\\16[9])\\d(?:9(?=\\d*\\12\\15?+\\d(\\17?+0)))*?\\11\\s)))\\1(?:(?=(\\d)\\d* 0*+\\3((\\19?+)\\d)\\d* 0*+\\5((\\21?+)\\d))(?=\\d(\\d* 0*+\\3\\20)\\d(\\d* 0*+\\5\\22))(?(?!\\18(?:(?=\\d+ 0*+\\3\\19((\\25?+)\\d))(?=\\d(\\d* 0*+\\3\\19\\26))(?=0\\27[9]|1\\27[8]|2\\27[7]|3\\27[6]|4\\27[5]|5\\27[4]|6\\27[3]|7\\27[2]|8\\27[1]|9\\27[0])\\d)*+(?=\\d(\\d* 0*+\\3\\19\\26?+))(?=[5-9]\\28[5-9]|1\\28[9]|2\\28[89]|3\\28[7-9]|4\\28[6-9]|6\\28[4]|7\\28[34]|8\\28[2-4]|9\\28[1-4]))(?=1\\23(?:1\\24[2]|2\\24[3]|3\\24[4]|4\\24[5]|5\\24[6]|6\\24[7]|7\\24[8]|8\\24[9]|9\\24[0])|2\\23(?:1\\24[3]|2\\24[4]|3\\24[5]|4\\24[6]|5\\24[7]|6\\24[8]|7\\24[9]|8\\24[0]|9\\24[1])|3\\23(?:1\\24[4]|2\\24[5]|3\\24[6]|4\\24[7]|5\\24[8]|6\\24[9]|7\\24[0]|8\\24[1]|9\\24[2])|4\\23(?:1\\24[5]|2\\24[6]|3\\24[7]|4\\24[8]|5\\24[9]|6\\24[0]|7\\24[1]|8\\24[2]|9\\24[3])|5\\23(?:1\\24[6]|2\\24[7]|3\\24[8]|4\\24[9]|5\\24[0]|6\\24[1]|7\\24[2]|8\\24[3]|9\\24[4])|6\\23(?:1\\24[7]|2\\24[8]|3\\24[9]|4\\24[0]|5\\24[1]|6\\24[2]|7\\24[3]|8\\24[4]|9\\24[5])|7\\23(?:1\\24[8]|2\\24[9]|3\\24[0]|4\\24[1]|5\\24[2]|6\\24[3]|7\\24[4]|8\\24[5]|9\\24[6])|8\\23(?:1\\24[9]|2\\24[0]|3\\24[1]|4\\24[2]|5\\24[3]|6\\24[4]|7\\24[5]|8\\24[6]|9\\24[7])|9\\23(?:1\\24[0]|2\\24[1]|3\\24[2]|4\\24[3]|5\\24[4]|6\\24[5]|7\\24[6]|8\\24[7]|9\\24[8])|0\\23(\\d)\\24\\29|(\\d)\\23[0]\\24\\30)|(?=1\\23(?:0\\24[2]|1\\24[3]|2\\24[4]|3\\24[5]|4\\24[6]|5\\24[7]|6\\24[8]|7\\24[9]|8\\24[0]|9\\24[1])|2\\23(?:0\\24[3]|1\\24[4]|2\\24[5]|3\\24[6]|4\\24[7]|5\\24[8]|6\\24[9]|7\\24[0]|8\\24[1]|9\\24[2])|3\\23(?:0\\24[4]|1\\24[5]|2\\24[6]|3\\24[7]|4\\24[8]|5\\24[9]|6\\24[0]|7\\24[1]|8\\24[2]|9\\24[3])|4\\23(?:0\\24[5]|1\\24[6]|2\\24[7]|3\\24[8]|4\\24[9]|5\\24[0]|6\\24[1]|7\\24[2]|8\\24[3]|9\\24[4])|5\\23(?:0\\24[6]|1\\24[7]|2\\24[8]|3\\24[9]|4\\24[0]|5\\24[1]|6\\24[2]|7\\24[3]|8\\24[4]|9\\24[5])|6\\23(?:0\\24[7]|1\\24[8]|2\\24[9]|3\\24[0]|4\\24[1]|5\\24[2]|6\\24[3]|7\\24[4]|8\\24[5]|9\\24[6])|7\\23(?:0\\24[8]|1\\24[9]|2\\24[0]|3\\24[1]|4\\24[2]|5\\24[3]|6\\24[4]|7\\24[5]|8\\24[6]|9\\24[7])|8\\23(?:0\\24[9]|1\\24[0]|2\\24[1]|3\\24[2]|4\\24[3]|5\\24[4]|6\\24[5]|7\\24[6]|8\\24[7]|9\\24[8])|9\\23(?:0\\24[0]|1\\24[1]|2\\24[2]|3\\24[3]|4\\24[4]|5\\24[5]|6\\24[6]|7\\24[7]|8\\24[8]|9\\24[9])|0\\23(?:0\\24[1]|1\\24[2]|2\\24[3]|3\\24[4]|4\\24[5]|5\\24[6]|6\\24[7]|7\\24[8]|8\\24[9]|9\\24[0])))\\d)+\\s)).+"; final String string = "0 1 2\n" + "10 20 1000\n" + "10 20 30\n" + "28657 46368 75025\n" + "0 0 0\n\n" + "8235 49 8284\n" + "4 145 149\n" + "4705 485 5191\n" + "821 75 897\n" + "74 497 572\n" + "1917 27 1944\n" + "89124 3 89128\n" + "6858 8669 15527\n" + "84916 4 84921\n" + "935 63 999\n" + "1 9 11\n" + "7203 26154 33358\n" + "2 765 767\n" + "267 8031 8298\n" + "2062 188 2251\n" + "38 7869 7907\n" + "59 85041 85101\n" + "705 220 926\n" + "71982 2346 74328\n" + "9 1 11\n" + "3 8117 8120\n" + "720 208 928\n" + "4 83 88\n" + "109 21854 21964\n" + "35019 44355 79375\n" + "7 9 17\n" + "2126 752 2879\n" + "2268 53 2321\n" + "9 37717 37726\n" + "5 949 954"; 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