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

/
/
g

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 = "(?m)^(?=(?:(?:(?(1)(?!))(.)|(?(2)(?!))(?!\\1)(.)|(?(3)(?!))(?!\\1|\\2)(.)|(?(4)(?!))(?!\\1|\\2|\\3)(.)|(?(5)(?!))(?!\\1|\\2|\\3|\\4)(.)|(?(6)(?!))(?!\\1|\\2|\\3|\\4|\\5)(.)|(?(7)(?!))(?!\\1|\\2|\\3|\\4|\\5|\\6)(.)|(?(8)(?!))(?!\\1|\\2|\\3|\\4|\\5|\\6|\\7)(.)|(?(9)(?!))(?!\\1|\\2|\\3|\\4|\\5|\\6|\\7|\\8)(.))\\S*?){1,9}$)(?=(?:\\1|\\2|\\3|\\4|\\5|\\6|\\7|\\8|\\9)*$)(?(DEFINE)(?<one>(?:(?!\\1).)*\\1)(?<two>(?:(?!\\2).)*\\2)(?<three>(?:(?!\\3).)*\\3)(?<four>(?:(?!\\4).)*\\4)(?<five>(?:(?!\\5).)*\\5)(?<six>(?:(?!\\6).)*\\6)(?<seven>(?:(?!\\7).)*\\7)(?<eight>(?:(?!\\8).)*\\8)(?<nine>(?:(?!\\9).)*\\9))(?:(?(1)(?=(?&one){1}(?!.*\\1))(?(2)(?=(?&two){1}(?!.*\\2))(?(3)(?=(?&three){1}(?!.*\\3))(?(4)(?=(?&four){1}(?!.*\\4))(?(5)(?=(?&five){1}(?!.*\\5))(?(6)(?=(?&six){1}(?!.*\\6))(?(7)(?=(?&seven){1}(?!.*\\7))(?(8)(?=(?&eight){1}(?!.*\\8))(?(9)(?=(?&nine){1}(?!.*\\9)))))))))))|(?(1)(?=(?&one){2}(?!.*\\1))(?(2)(?=(?&two){2}(?!.*\\2))(?(3)(?=(?&three){2}(?!.*\\3))(?(4)(?=(?&four){2}(?!.*\\4))(?(5)(?=(?&five){2}(?!.*\\5))(?(6)(?=(?&six){2}(?!.*\\6))(?(7)(?=(?&seven){2}(?!.*\\7))(?(8)(?=(?&eight){2}(?!.*\\8))(?(9)(?=(?&nine){2}(?!.*\\9)))))))))))|(?(1)(?=(?&one){3}(?!.*\\1))(?(2)(?=(?&two){3}(?!.*\\2))(?(3)(?=(?&three){3}(?!.*\\3))(?(4)(?=(?&four){3}(?!.*\\4))(?(5)(?=(?&five){3}(?!.*\\5))(?(6)(?=(?&six){3}(?!.*\\6))(?(7)(?=(?&seven){3}(?!.*\\7))(?(8)(?=(?&eight){3}(?!.*\\8))(?(9)(?=(?&nine){3}(?!.*\\9)))))))))))|(?(1)(?=(?&one){4}(?!.*\\1))(?(2)(?=(?&two){4}(?!.*\\2))(?(3)(?=(?&three){4}(?!.*\\3))(?(4)(?=(?&four){4}(?!.*\\4))(?(5)(?=(?&five){4}(?!.*\\5))(?(6)(?=(?&six){4}(?!.*\\6))(?(7)(?=(?&seven){4}(?!.*\\7))(?(8)(?=(?&eight){4}(?!.*\\8))(?(9)(?=(?&nine){4}(?!.*\\9)))))))))))|(?(1)(?=(?&one){5}(?!.*\\1))(?(2)(?=(?&two){5}(?!.*\\2))(?(3)(?=(?&three){5}(?!.*\\3))(?(4)(?=(?&four){5}(?!.*\\4))(?(5)(?=(?&five){5}(?!.*\\5))(?(6)(?=(?&six){5}(?!.*\\6))(?(7)(?=(?&seven){5}(?!.*\\7))(?(8)(?=(?&eight){5}(?!.*\\8))(?(9)(?=(?&nine){5}(?!.*\\9)))))))))))|(?(1)(?=(?&one){6}(?!.*\\1))(?(2)(?=(?&two){6}(?!.*\\2))(?(3)(?=(?&three){6}(?!.*\\3))(?(4)(?=(?&four){6}(?!.*\\4))(?(5)(?=(?&five){6}(?!.*\\5))(?(6)(?=(?&six){6}(?!.*\\6))(?(7)(?=(?&seven){6}(?!.*\\7))(?(8)(?=(?&eight){6}(?!.*\\8))(?(9)(?=(?&nine){6}(?!.*\\9)))))))))))|(?(1)(?=(?&one){7}(?!.*\\1))(?(2)(?=(?&two){7}(?!.*\\2))(?(3)(?=(?&three){7}(?!.*\\3))(?(4)(?=(?&four){7}(?!.*\\4))(?(5)(?=(?&five){7}(?!.*\\5))(?(6)(?=(?&six){7}(?!.*\\6))(?(7)(?=(?&seven){7}(?!.*\\7))(?(8)(?=(?&eight){7}(?!.*\\8))(?(9)(?=(?&nine){7}(?!.*\\9)))))))))))|(?(1)(?=(?&one){8}(?!.*\\1))(?(2)(?=(?&two){8}(?!.*\\2))(?(3)(?=(?&three){8}(?!.*\\3))(?(4)(?=(?&four){8}(?!.*\\4))(?(5)(?=(?&five){8}(?!.*\\5))(?(6)(?=(?&six){8}(?!.*\\6))(?(7)(?=(?&seven){8}(?!.*\\7))(?(8)(?=(?&eight){8}(?!.*\\8))(?(9)(?=(?&nine){8}(?!.*\\9)))))))))))|(?(1)(?=(?&one){9}(?!.*\\1))(?(2)(?=(?&two){9}(?!.*\\2))(?(3)(?=(?&three){9}(?!.*\\3))(?(4)(?=(?&four){9}(?!.*\\4))(?(5)(?=(?&five){9}(?!.*\\5))(?(6)(?=(?&six){9}(?!.*\\6))(?(7)(?=(?&seven){9}(?!.*\\7))(?(8)(?=(?&eight){9}(?!.*\\8))(?(9)(?=(?&nine){9}(?!.*\\9)))))))))))).*"; final String string = "------------------------------\n" + "match_words = \n" + "------------------------------\n" + "arraigning\n" + "nonordered\n" + "abadbacdcacbdbdc\n" + "mesosome\n" + "ananna\n" + "unendued\n" + "tromometer\n" + "caucasus\n" + "intestines\n" + "i\n" + "deed\n" + "horseshoer\n" + "happenchance\n" + "reappear\n" + "deeded\n" + "pullup\n" + "arraigning\n" + "testes\n" + "mononymy\n" + "scintillescent\n" + "couscous\n\n" + "------------------------------\n" + "not_match_words = \n" + "------------------------------\n" + "edified\n" + "unreverberating\n" + "underpass\n" + "interinsert\n" + "pilfered\n" + "nippiness\n" + "gregarinian\n" + "deicide\n" + "nonaristocratic\n" + "rototiller\n" + "ozonizing\n" + "museums\n" + "backbreaker\n" + "interradiated\n" + "antistalling\n" + "naturalize\n" + "equitriangular\n" + "reparticipate\n" + "ppd\n" + "miasmas\n" + "cabbage\n\n"; final Pattern pattern = Pattern.compile(regex); 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