Regular Expressions 101

Save & Share

  • Regex Version: ver. 14
  • 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
No Match

/
/
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)^I await your input\.(?=\d|\-)|^(?:I await your input\.(?:x|\/|\*|\+|\.))|^0+(?=0|0.|[1-9])|(?<=\.\d+)\.$|^(?:x|\/|\*|\+|\.)|(?<=(?:x|\/|\*|\-|\+))0(?=\d+)|(?<=\.)\-$|(?<=^\-)(?:x|\*|\/|\-|\+|\.)|(?<=\.\d+)(x|\*|\/|\-|\+)?\." Local $sString = "|(?<=(?:x|\/|\*|\-|\+|\.))(?:x|\/|\*|\+|\.)" & @CRLF & _ "/When ready, just start over from the original working regex." & @CRLF & _ "|(?<=\d+)(x|\*|\/|\-|\+)(?=x|\*|\/|\-|\+)" & @CRLF & _ "|(?<=x|\*|\/|\-|\+|\.)\." & @CRLF & _ "|\.(?=x|\*|\/|\-|\+|\.)|(?<=\d+\.\d+(?:x|\*|\/|\-|\+))\.|(?<=\d+\.\d+)\." & @CRLF & _ "Seems like I don't need this one: |\-(?=-)" & @CRLF & _ "40.0." & @CRLF & _ "5.6+." & @CRLF & _ "7.3." & @CRLF & _ "2222-" & @CRLF & _ "2222--" & @CRLF & _ "2222.-" & @CRLF & _ "0.00002/" & @CRLF & _ "111.222*x" & @CRLF & _ "3838.3" & @CRLF & _ "0.0000x." & @CRLF & _ "1+2.333.x" & @CRLF & _ "-/1" & @CRLF & _ "-/1/-" & @CRLF & _ "1.1/+" & @CRLF & _ "0.2/*" & @CRLF & _ "333/x" & @CRLF & _ "4444/-" & @CRLF & _ "888-" & @CRLF & _ "0x/" & @CRLF & _ "0..+" & @CRLF & _ "0xx" & @CRLF & _ "3x." & @CRLF & _ "3.xx" & @CRLF & _ "0.1." & @CRLF & _ "++++++++++++++++++++++++++++++++++" & @CRLF & _ "(?<=\d+(?:x|\/|\*|\-|\+|\.))(?:x|\/|\*|\-|\+|\.)" & @CRLF & _ "(?<=\.\d+(?:x|\/|\*|\-|\+|\.))(?:x|\/|\*|\-|\+|\.)" & @CRLF & _ "(?<=\d+(?:x|\/|\*|\-|\+|\.))(?:x|\/|\*|\-|\+|\.)" & @CRLF & _ "(?<=\d+)(?:x|\/|\*|\-|\+|\.)(?=x|\/|\*|\-|\+|\.) // This selects any math symbol directly after a math symbol such as 111.222*x (x will be selected)" & @CRLF & _ "?:non-capturing group" & @CRLF & _ "I await your input.4" & @CRLF & _ "I await your input.+" & @CRLF & _ "abcdefghijklmnopqrstuvwxyz" & @CRLF & _ "...." & @CRLF & _ "0000000" & @CRLF & _ "000000033300" & @CRLF & _ "00003304" & @CRLF & _ "0000004" & @CRLF & _ "000000." & @CRLF & _ "2.5+88889.4756x8.8/0.125+04.5" & @CRLF & _ "2.5+88889.4756x8.8/0.125+0.45" & @CRLF & _ "2.5+88889.4756x8.8/0.125+0" & @CRLF & _ "2.4+2.00003" & @CRLF & _ "2.4+04" & @CRLF & _ "0x9-95.8/00" & @CRLF & _ "/*" & @CRLF & _ "+-+" & @CRLF & _ "000000004" & @CRLF & _ "6.6.4444.4.4.5555.588885.5." & @CRLF & _ "6.6.4444.4.4.5555.55.5343." & @CRLF & _ "4+5" & @CRLF & _ "88889993.4884." & @CRLF & _ "4." & @CRLF & _ "8888.8.4" & @CRLF & _ "8.8.4.8" & @CRLF & _ "4.56850.000000.0.100.324000+8.343.333.4400000.00000" & @CRLF & _ "0.13453.383883...+388338.383838+3.4/833.3x8*4333-8-+++**3*3/*3" & @CRLF & _ "0000.1" & @CRLF & _ "+" & @CRLF & _ "-" & @CRLF & _ "." & @CRLF & _ "*" & @CRLF & _ "/" & @CRLF & _ "x0000000" & @CRLF & _ "000000004" & @CRLF & _ "0.1334343." & @CRLF & _ "0123456789" & @CRLF & _ "000001234" & @CRLF & _ "0000." & @CRLF & _ "_+-*/|\/*" & @CRLF & _ "@#!#$" & @CRLF & _ "^*()" & @CRLF & _ ".000" & @CRLF & _ "copied and saved regex:" & @CRLF & _ "|(?<=.[\d+])\." & @CRLF & _ "_______________________________" & @CRLF & _ "(?<=\d|\d)\.$" & @CRLF & _ "// sort of works: \.\d+\.$(?!\d+\.) it takes of the .allnumbesanddecimal from here" & @CRLF & _ "(?<=\.)\d+\.$" & @CRLF & _ "(?<=\.\d+)\.$" & @CRLF & _ "(\.\d+)$" & @CRLF & _ "(?<=[\d]\.[\d])\." & @CRLF & _ "Negate these: " & @CRLF & _ "[^0\.1]" 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