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

#include <StringConstants.au3> ; to declare the Constants of StringRegExp #include <Array.au3> ; UDF needed for _ArrayDisplay and _ArrayConcatenate Local $sRegex = "(?mx)(?m)" & @CRLF & _ "^ " & @CRLF & _ "(?=" & @CRLF & _ " (?:" & @CRLF & _ " (?:" & @CRLF & _ " (?(1) (?!) )" & @CRLF & _ " ( . ) # (1)" & @CRLF & _ " | (?(2) (?!) )" & @CRLF & _ " (?! \1 )" & @CRLF & _ " ( . ) # (2)" & @CRLF & _ " | (?(3) (?!) )" & @CRLF & _ " (?! \1 | \2 )" & @CRLF & _ " ( . ) # (3)" & @CRLF & _ " | (?(4) (?!) )" & @CRLF & _ " (?! \1 | \2 | \3 )" & @CRLF & _ " ( . ) # (4)" & @CRLF & _ " | (?(5) (?!) )" & @CRLF & _ " (?! \1 | \2 | \3 | \4 )" & @CRLF & _ " ( . ) # (5)" & @CRLF & _ " | (?(6) (?!) )" & @CRLF & _ " (?! \1 | \2 | \3 | \4 | \5 )" & @CRLF & _ " ( . ) # (6)" & @CRLF & _ " | (?(7) (?!) )" & @CRLF & _ " (?! \1 | \2 | \3 | \4 | \5 | \6 )" & @CRLF & _ " ( . ) # (7)" & @CRLF & _ " | (?(8) (?!) )" & @CRLF & _ " (?! \1 | \2 | \3 | \4 | \5 | \6 | \7 )" & @CRLF & _ " ( . ) # (8)" & @CRLF & _ " | (?(9) (?!) )" & @CRLF & _ " (?! \1 | \2 | \3 | \4 | \5 | \6 | \7 | \8 )" & @CRLF & _ " ( . ) # (9)" & @CRLF & _ " )" & @CRLF & _ " \S*? " & @CRLF & _ " ){1,9}" & @CRLF & _ " $ " & @CRLF & _ ")" & @CRLF & _ "" & @CRLF & _ "(?= (?: \1|\2|\3|\4|\5|\6|\7|\8|\9 )* $ )" & @CRLF & _ "" & @CRLF & _ "(?(DEFINE)" & @CRLF & _ " (?<one> # (8)" & @CRLF & _ " (?: (?! \1 ) . )*" & @CRLF & _ " \1 " & @CRLF & _ " ) " & @CRLF & _ " (?<two> # (9)" & @CRLF & _ " (?: (?! \2 ) . )*" & @CRLF & _ " \2 " & @CRLF & _ " ) " & @CRLF & _ " (?<three> # (10)" & @CRLF & _ " (?: (?! \3 ) . )*" & @CRLF & _ " \3 " & @CRLF & _ " ) " & @CRLF & _ " (?<four> # (11)" & @CRLF & _ " (?: (?! \4 ) . )*" & @CRLF & _ " \4 " & @CRLF & _ " ) " & @CRLF & _ " (?<five> # (12)" & @CRLF & _ " (?: (?! \5 ) . )*" & @CRLF & _ " \5 " & @CRLF & _ " ) " & @CRLF & _ " (?<six> # (13)" & @CRLF & _ " (?: (?! \6 ) . )*" & @CRLF & _ " \6 " & @CRLF & _ " ) " & @CRLF & _ " (?<seven> # (14)" & @CRLF & _ " (?: (?! \7 ) . )*" & @CRLF & _ " \7 " & @CRLF & _ " ) " & @CRLF & _ " (?<eight> # (15)" & @CRLF & _ " (?: (?! \8 ) . )*" & @CRLF & _ " \8 " & @CRLF & _ " ) " & @CRLF & _ " (?<nine> # (16)" & @CRLF & _ " (?: (?! \9 ) . )*" & @CRLF & _ " \9 " & @CRLF & _ " ) " & @CRLF & _ ")" & @CRLF & _ "" & @CRLF & _ "(?: ### Times Table 9 x 9 = 81 max char string" & @CRLF & _ "" & @CRLF & _ " # 1 " & @CRLF & _ " (?(1) (?= (?&one) {1} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {1} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){1} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {1} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {1} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {1} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){1} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){1} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {1} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 2 " & @CRLF & _ " (?(1) (?= (?&one) {2} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {2} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){2} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {2} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {2} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {2} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){2} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){2} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {2} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 3 " & @CRLF & _ " (?(1) (?= (?&one) {3} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {3} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){3} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {3} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {3} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {3} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){3} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){3} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {3} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 4 " & @CRLF & _ " (?(1) (?= (?&one) {4} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {4} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){4} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {4} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {4} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {4} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){4} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){4} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {4} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 5 " & @CRLF & _ " (?(1) (?= (?&one) {5} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {5} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){5} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {5} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {5} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {5} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){5} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){5} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {5} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 6 " & @CRLF & _ " (?(1) (?= (?&one) {6} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {6} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){6} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {6} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {6} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {6} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){6} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){6} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {6} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 7 " & @CRLF & _ " (?(1) (?= (?&one) {7} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {7} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){7} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {7} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {7} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {7} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){7} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){7} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {7} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 8 " & @CRLF & _ " (?(1) (?= (?&one) {8} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {8} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){8} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {8} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {8} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {8} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){8} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){8} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {8} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ "" & @CRLF & _ " | # 9 " & @CRLF & _ " (?(1) (?= (?&one) {9} (?! .* \1 ))" & @CRLF & _ " (?(2) (?= (?&two) {9} (?! .* \2 ))" & @CRLF & _ " (?(3) (?= (?&three){9} (?! .* \3 ))" & @CRLF & _ " (?(4) (?= (?&four) {9} (?! .* \4 ))" & @CRLF & _ " (?(5) (?= (?&five) {9} (?! .* \5 ))" & @CRLF & _ " (?(6) (?= (?&six) {9} (?! .* \6 ))" & @CRLF & _ " (?(7) (?= (?&seven){9} (?! .* \7 ))" & @CRLF & _ " (?(8) (?= (?&eight){9} (?! .* \8 ))" & @CRLF & _ " (?(9) (?= (?&nine) {9} (?! .* \9 ))" & @CRLF & _ " )))))))))" & @CRLF & _ ")" & @CRLF & _ ".*" Local $sString = "------------------------------" & @CRLF & _ "match_words = " & @CRLF & _ "------------------------------" & @CRLF & _ "arraigning" & @CRLF & _ "nonordered" & @CRLF & _ "abadbacdcacbdbdc" & @CRLF & _ "mesosome" & @CRLF & _ "ananna" & @CRLF & _ "unendued" & @CRLF & _ "tromometer" & @CRLF & _ "caucasus" & @CRLF & _ "intestines" & @CRLF & _ "i" & @CRLF & _ "deed" & @CRLF & _ "horseshoer" & @CRLF & _ "happenchance" & @CRLF & _ "reappear" & @CRLF & _ "deeded" & @CRLF & _ "pullup" & @CRLF & _ "arraigning" & @CRLF & _ "testes" & @CRLF & _ "mononymy" & @CRLF & _ "scintillescent" & @CRLF & _ "couscous" & @CRLF & _ "" & @CRLF & _ "------------------------------" & @CRLF & _ "not_match_words = " & @CRLF & _ "------------------------------" & @CRLF & _ "edified" & @CRLF & _ "unreverberating" & @CRLF & _ "underpass" & @CRLF & _ "interinsert" & @CRLF & _ "pilfered" & @CRLF & _ "nippiness" & @CRLF & _ "gregarinian" & @CRLF & _ "deicide" & @CRLF & _ "nonaristocratic" & @CRLF & _ "rototiller" & @CRLF & _ "ozonizing" & @CRLF & _ "museums" & @CRLF & _ "backbreaker" & @CRLF & _ "interradiated" & @CRLF & _ "antistalling" & @CRLF & _ "naturalize" & @CRLF & _ "equitriangular" & @CRLF & _ "reparticipate" & @CRLF & _ "ppd" & @CRLF & _ "miasmas" & @CRLF & _ "cabbage" & @CRLF & _ "" & @CRLF & _ "" Local $aArray = StringRegExp($sString, $sRegex, $STR_REGEXPARRAYGLOBALFULLMATCH) Local $aFullArray[0] For $i = 0 To UBound($aArray) -1 _ArrayConcatenate($aFullArray, $aArray[$i]) Next $aArray = $aFullArray ; Present the entire match result _ArrayDisplay($aArray, "Result")

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 AutoIt, please visit: https://www.autoitscript.com/autoit3/docs/functions/StringRegExp.htm