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

/
/
gm

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 = "(?m)U{2,3}D{2,3}(?!D)|D{2,3}U{2,3}(?!U)" Local $sString = "Good UUDDDUUU" & @CRLF & _ "Bad UDUDUDUU" & @CRLF & _ "Bad DUDUDDDU" & @CRLF & _ "Bad UDDUDUDU" & @CRLF & _ "Bad UDUUUDDD" & @CRLF & _ "Bad DDUDDUDD" & @CRLF & _ "Good UUDDUUUU" & @CRLF & _ "Bad UUUUDUUD" & @CRLF & _ "Bad DUUDUDUD" & @CRLF & _ "Good UDDUUUDU" & @CRLF & _ "Bad DDDDUDDD" & @CRLF & _ "Bad DUUUUDDU" & @CRLF & _ "Bad UUUUUUUD" & @CRLF & _ "Good DUUDDDUD" & @CRLF & _ "Bad DDDDUUUU" & @CRLF & _ "Good DDDUUDUU" & @CRLF & _ "Bad UDUDDUUD" & @CRLF & _ "Bad DDDDDDDD" & @CRLF & _ "Good DUUUDDDU" & @CRLF & _ "Bad DDDDDUUU" & @CRLF & _ "Bad DDUUUUUD" & @CRLF & _ "Bad UDUUDUDU" & @CRLF & _ "Bad DDDUDDUU" & @CRLF & _ "Bad UDUDUUUD" & @CRLF & _ "Bad DUDUUUDU" & @CRLF & _ "Good DDUUDUUD" & @CRLF & _ "Bad UDUUUUDU" & @CRLF & _ "Bad DDUDUDDD" & @CRLF & _ "Bad DUDUDUDU" & @CRLF & _ "Bad UDDUDDDU" & @CRLF & _ "Bad DDUDDDDD" & @CRLF & _ "Bad DUUDUUUD" & @CRLF & _ "Good UDDUUDDU" & @CRLF & _ "Bad DUUUUUDU" & @CRLF & _ "Good DUUDDUUD" & @CRLF & _ "Bad DDDDUDUU" & @CRLF & _ "Bad UDUDDDUD" & @CRLF & _ "Bad DUUUDUDU" & @CRLF & _ "Bad DDDDDDUU" & @CRLF & _ "Good DDUUUDUD" & @CRLF & _ "Bad UDUUDDDU" & @CRLF & _ "Bad UDUDUDUD" & @CRLF & _ "Good DDUUDDUD" & @CRLF & _ "Bad UDUUUDDU" & @CRLF & _ "Bad DUDDUDDU" & @CRLF & _ "Bad UUDDDDUD" & @CRLF & _ "Bad DUDUUDUD" & @CRLF & _ "Bad DUDDDDDU" & @CRLF & _ "Good UUDDUDUD" & @CRLF & _ "Bad UUUUDDUU" & @CRLF & _ "Bad UDDDDUDU" & @CRLF & _ "Bad DUDUDDUD" & @CRLF & _ "Bad UUUUUDUU" & @CRLF & _ "Bad UDDUDUUD" & @CRLF & _ "Good UDDDUUDU" & @CRLF & _ "Bad DUUDUDDU" & @CRLF & _ "Bad UDDUUUUD" & @CRLF & _ "Bad UUDUDDDD" & @CRLF & _ "Bad DUUDDDDU" & @CRLF & _ "Bad UDUDDUDU" & @CRLF & _ "Bad UUDUUDDD" & @CRLF & _ "Bad DUDDUUDU" & @CRLF & _ "Good UUDDDUUD" & @CRLF & _ "Bad UDUDUUDU" & @CRLF & _ "Bad DUDUUUUD" & @CRLF & _ "Good UUUDDDUU" & @CRLF & _ "Bad DUDDDUDU" & @CRLF & _ "Good UUDDUUUD" & @CRLF & _ "Bad UUUUDUUU" & @CRLF & _ "Bad UDDDDDDU" & @CRLF & _ "Bad UUUUDDDD" & @CRLF & _ "Bad DUDUDUUD" & @CRLF & _ "Bad UUUDUDUU" & @CRLF & _ "Bad UUUUUUUU" & @CRLF & _ "Bad UDDUDDUD" & @CRLF & _ "Bad DDDDUUUD" & @CRLF & _ "Bad UDDDUDDU" & @CRLF & _ "Bad UUUUUDDD" & @CRLF & _ "Bad DUUDUUDU" & @CRLF & _ "Good UDDUUDUD" & @CRLF & _ "Bad DDDDDUUD" & @CRLF & _ "Bad DDUUUUUU" & @CRLF & _ "Bad UUDUDUDD" & @CRLF & _ "Bad DUDDUDDD" & @CRLF & _ "Good DUUDDUDU" & @CRLF & _ "Bad UDUDDDDU" & @CRLF & _ "Good DDUUDUUU" & @CRLF & _ "Bad DUDUUDUU" & @CRLF & _ "Bad UUDUUUDD" & @CRLF & _ "Bad DUDDDDDD" & @CRLF & _ "Bad UDDDDUDD" & @CRLF & _ "Bad UDUDUDDU" & @CRLF & _ "Bad DUDUDDUU" & @CRLF & _ "Good UUUDDUUU" & @CRLF & _ "Good DDDUUUDD" & @CRLF & _ "Bad UDDUDUUU" & @CRLF & _ "Good UDDDUUDD" & @CRLF & _ "Bad UUUUDUDD" & @CRLF & _ "Bad DUUDUDDD" & @CRLF & _ "Bad UUUDUUUU" & @CRLF & _ "Bad DDDUDUDD" & @CRLF & _ "Bad UDDUUUUU" & @CRLF & _ "Bad DDDDUDUD" & @CRLF & _ "Bad UUDUDDDU" & @CRLF & _ "Bad UUUUUUDD" & @CRLF & _ "Bad DUUDDDDD" & @CRLF & _ "Bad DDUDUUUU" & @CRLF & _ "Bad UDUDDUDD" & @CRLF & _ "Bad DDDDDDUD" & @CRLF & _ "Bad UUDUUDDU" & @CRLF & _ "Good DDUUUDUU" & @CRLF & _ "Bad DUDDUUDD" & @CRLF & _ "Bad DDUUUUDD" & @CRLF & _ "Bad DDUDDUUU" & @CRLF & _ "Bad DUDDUDUU" & @CRLF & _ "Bad UDUDUUDD" & @CRLF & _ "Good DDUUDDUU" & @CRLF & _ "Bad DUDUUUUU" & @CRLF & _ "Good UUUDDDUD" & @CRLF & _ "Bad DUDDDUDD" & @CRLF & _ "Good DDUUDUDD" & @CRLF & _ "Bad UDDDDDDD" & @CRLF & _ "Bad DUDDDDUU" & @CRLF & _ "Bad DUUUUDUD" & @CRLF & _ "Bad UUUUDDDU" & @CRLF & _ "Bad DUDUDUUU" & @CRLF & _ "Bad UUUDUDUD" & @CRLF & _ "Bad UDDDDUUU" & @CRLF & _ "Good DDDUUDDD" & @CRLF & _ "Bad UDDUDDUU" & @CRLF & _ "Bad UDDDUDDD" & @CRLF & _ "Good DUUUDDUD" & @CRLF & _ "Bad UUUUUDDU" & @CRLF & _ "Bad DUUDUUDD" & @CRLF & _ "Bad UDDDUUUU" & @CRLF & _ "Bad UDUUDUUD" & @CRLF & _ "Bad DDDUDDDD" & @CRLF & _ "Good UDDUUDUU" & @CRLF & _ "Bad UUDUDUDU" & @CRLF & _ "Good DUUDDUDD" & @CRLF & _ "Bad UDUUUUUD" & @CRLF & _ "Bad DDUDUDUU" & @CRLF & _ "Bad UDUDDDDD" & @CRLF & _ "Bad UUDUUUDU" & @CRLF & _ "Good DDUUUDDD" & @CRLF & _ "Bad DDUDDDUU" & @CRLF & _ "Bad DUDDUUUU" & @CRLF & _ "Bad UDUDUDDD" & @CRLF & _ "Good UUUDDUUD" & @CRLF & _ "Good DDDUUUDU" & @CRLF & _ "Good DDUUDDDD" & @CRLF & _ "Bad DUDDDUUU" & @CRLF & _ "Bad DUUUUUUD" & @CRLF & _ "Bad UUUUDUDU" & @CRLF & _ "Bad UUUDUUUD" & @CRLF & _ "Bad DDDUDUDU" & @CRLF & _ "Bad UDDDDDUU" & @CRLF & _ "Bad DUUUDUUD" & @CRLF & _ "Bad UUUUUUDU" & @CRLF & _ "Bad UDDDUDUU" & @CRLF & _ "Bad UDUUDDUD" & @CRLF & _ "Bad DDUDUUUD" & @CRLF & _ "Bad DDUUUUDU" & @CRLF & _ "Bad UDUUUDUD" & @CRLF & _ "Bad DDUDDUUD" & @CRLF & _ "Good DDUUDUDU" & @CRLF & _ "Good DDDUUDDU" & @CRLF & _ "Bad DDDUDDDU" & @CRLF & _ "Bad DDUDUDUD" & @CRLF & _ "Good DDUUUDDU" & @CRLF & _ "Bad DDUDDDUD" & @CRLF & _ "Good DDUUDDDU" & @CRLF & _ "Bad UUDDDDDU" & @CRLF & _ "Bad UUDUDDUD" & @CRLF & _ "Good UUDDUDDU" & @CRLF & _ "Bad UUDUUDUD" & @CRLF & _ "Bad UUUDDDDU" & @CRLF & _ "Bad UUUDUDDU" & @CRLF & _ "Good UUDDDUDU" & @CRLF & _ "Bad UUDUDUUD" & @CRLF & _ "Bad DUDDUDUD" & @CRLF & _ "Good UUDDUUDU" & @CRLF & _ "Bad UUDUUUUD" & @CRLF & _ "Bad DUDDDDUD" & @CRLF & _ "Bad DUUUUDUU" & @CRLF & _ "Bad DDDDUUDU" & @CRLF & _ "Bad UDDDDUUD" & @CRLF & _ "Good UUUDDUDU" & @CRLF & _ "Good DUUUDDUU" & @CRLF & _ "Bad DDDUUUUD" & @CRLF & _ "Bad DDDDDUDU" & @CRLF & _ "Good UDDDUUUD" & @CRLF & _ "Bad UDUUDUUU" & @CRLF & _ "Bad UUDDDDDD" & @CRLF & _ "Bad UUUDUUDU" & @CRLF & _ "Bad DDDUDUUD" & @CRLF & _ "Bad DUDUUDDD" & @CRLF & _ "Bad UUDUDDUU" & @CRLF & _ "Bad UDUUUUUU" & @CRLF & _ "Good UUDDUDDD" & @CRLF & _ "Bad DDUDUUDU" & @CRLF & _ "Bad DUDUDDDD" & @CRLF & _ "Bad UUDUUDUU" & @CRLF & _ "Bad DUDDUUUD" & @CRLF & _ "Bad UDDUDUDD" & @CRLF & _ "Bad DDUDDUDU" & @CRLF & _ "Bad DUUDUDUU" & @CRLF & _ "Bad UUUDDDDD" & @CRLF & _ "Bad DUDDDUUD" & @CRLF & _ "Bad DUUUUUUU" & @CRLF & _ "Good UDDUUUDD" & @CRLF & _ "Bad DDDDUDDU" & @CRLF & _ "Bad UDDDDDUD" & @CRLF & _ "Bad DUUUUDDD" & @CRLF & _ "Good DUUDDDUU" & @CRLF & _ "Bad UUUDUDDD" & @CRLF & _ "Bad DUUUDUUU" & @CRLF & _ "Good DDDUUDUD" & @CRLF & _ "Bad UDUDDUUU" & @CRLF & _ "Bad DDDDDDDU" & @CRLF & _ "Bad UDDDUDUD" & @CRLF & _ "Bad UDUUDDUU" & @CRLF & _ "Good UUDDDUDD" & @CRLF & _ "Bad DUUUDDDD" & @CRLF & _ "Bad UDUUDUDD" & @CRLF & _ "Bad DDDUDDUD" & @CRLF & _ "Bad UUDDDDUU" & @CRLF & _ "Bad UDUDUUUU" & @CRLF & _ "Bad DUDUUUDD" & @CRLF & _ "Bad UUDUDUUU" & @CRLF & _ "Bad UDUUUDUU" & @CRLF & _ "Good UUDDUUDD" & @CRLF & _ "Bad UDUUUUDD" & @CRLF & _ "Good UUDDUDUU" & @CRLF & _ "Bad DDUDUDDU" & @CRLF & _ "Bad UUUUDDUD" & @CRLF & _ "Bad DUDUDUDD" & @CRLF & _ "Bad UUDUUUUU" & @CRLF & _ "Bad DDDDUUDD" & @CRLF & _ "Bad UDDUDDDD" & @CRLF & _ "Bad DDUDDDDU" & @CRLF & _ "Bad UUUUUDUD" & @CRLF & _ "Bad DUUDUUUU" & @CRLF & _ "Good UUUDDUDD" & @CRLF & _ "Bad DDDUUUUU" & @CRLF & _ "Bad DDDDDUDD" & @CRLF & _ "Good UDDUUDDD" & @CRLF & _ "Bad DUUUUUDD" & @CRLF & _ "Good DUUDDUUU" & @CRLF & _ "Bad UUUDUUDD" & @CRLF & _ "Bad DDDUDUUU" & @CRLF & _ "Bad UDUDDDUU" & @CRLF & _ "Bad DUDUUDDU" & @CRLF & _ "Bad DUUUDUDD" & @CRLF & _ "Bad UDUUDDDD" & @CRLF & _ "Bad DDUDUUDD" 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