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

%
%
g

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 = "[!-,.-/:-@[-`{-~]" Local $sString = "! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ \ { | } ~" & @CRLF & _ "32 040 20 00100000 &#32; Space" & @CRLF & _ "33 041 21 00100001 ! &#33; Exclamation mark" & @CRLF & _ "34 042 22 00100010 " &#34; &quot; Double quotes (or speech marks)" & @CRLF & _ "35 043 23 00100011 # &#35; Number" & @CRLF & _ "36 044 24 00100100 $ &#36; Dollar" & @CRLF & _ "37 045 25 00100101 % &#37; Procenttecken" & @CRLF & _ "38 046 26 00100110 & &#38; &amp; Ampersand" & @CRLF & _ "39 047 27 00100111 ' &#39; Single quote" & @CRLF & _ "40 050 28 00101000 ( &#40; Open parenthesis (or open bracket)" & @CRLF & _ "41 051 29 00101001 ) &#41; Close parenthesis (or close bracket)" & @CRLF & _ "42 052 2A 00101010 * &#42; Asterisk" & @CRLF & _ "43 053 2B 00101011 + &#43; Plus" & @CRLF & _ "44 054 2C 00101100 , &#44; Comma" & @CRLF & _ "45 055 2D 00101101 - &#45; Hyphen" & @CRLF & _ "46 056 2E 00101110 . &#46; Period, dot or full stop" & @CRLF & _ "47 057 2F 00101111 / &#47; Slash or divide" & @CRLF & _ "48 060 30 00110000 0 &#48; Zero" & @CRLF & _ "49 061 31 00110001 1 &#49; One" & @CRLF & _ "50 062 32 00110010 2 &#50; Two" & @CRLF & _ "51 063 33 00110011 3 &#51; Three" & @CRLF & _ "52 064 34 00110100 4 &#52; Four" & @CRLF & _ "53 065 35 00110101 5 &#53; Five" & @CRLF & _ "54 066 36 00110110 6 &#54; Six" & @CRLF & _ "55 067 37 00110111 7 &#55; Seven" & @CRLF & _ "56 070 38 00111000 8 &#56; Eight" & @CRLF & _ "57 071 39 00111001 9 &#57; Nine" & @CRLF & _ "58 072 3A 00111010 : &#58; Colon" & @CRLF & _ "59 073 3B 00111011 ; &#59; Semicolon" & @CRLF & _ "60 074 3C 00111100 < &#60; &lt; Less than (or open angled bracket)" & @CRLF & _ "61 075 3D 00111101 = &#61; Equals" & @CRLF & _ "62 076 3E 00111110 > &#62; &gt; Greater than (or close angled bracket)" & @CRLF & _ "63 077 3F 00111111 ? &#63; Question mark" & @CRLF & _ "64 100 40 01000000 @ &#64; At symbol" & @CRLF & _ "65 101 41 01000001 A &#65; Uppercase A" & @CRLF & _ "66 102 42 01000010 B &#66; Uppercase B" & @CRLF & _ "67 103 43 01000011 C &#67; Uppercase C" & @CRLF & _ "68 104 44 01000100 D &#68; Uppercase D" & @CRLF & _ "69 105 45 01000101 E &#69; Uppercase E" & @CRLF & _ "70 106 46 01000110 F &#70; Uppercase F" & @CRLF & _ "71 107 47 01000111 G &#71; Uppercase G" & @CRLF & _ "72 110 48 01001000 H &#72; Uppercase H" & @CRLF & _ "73 111 49 01001001 I &#73; Uppercase I" & @CRLF & _ "74 112 4A 01001010 J &#74; Uppercase J" & @CRLF & _ "75 113 4B 01001011 K &#75; Uppercase K" & @CRLF & _ "76 114 4C 01001100 L &#76; Uppercase L" & @CRLF & _ "77 115 4D 01001101 M &#77; Uppercase M" & @CRLF & _ "78 116 4E 01001110 N &#78; Uppercase N" & @CRLF & _ "79 117 4F 01001111 O &#79; Uppercase O" & @CRLF & _ "80 120 50 01010000 P &#80; Uppercase P" & @CRLF & _ "81 121 51 01010001 Q &#81; Uppercase Q" & @CRLF & _ "82 122 52 01010010 R &#82; Uppercase R" & @CRLF & _ "83 123 53 01010011 S &#83; Uppercase S" & @CRLF & _ "84 124 54 01010100 T &#84; Uppercase T" & @CRLF & _ "85 125 55 01010101 U &#85; Uppercase U" & @CRLF & _ "86 126 56 01010110 V &#86; Uppercase V" & @CRLF & _ "87 127 57 01010111 W &#87; Uppercase W" & @CRLF & _ "88 130 58 01011000 X &#88; Uppercase X" & @CRLF & _ "89 131 59 01011001 Y &#89; Uppercase Y" & @CRLF & _ "90 132 5A 01011010 Z &#90; Uppercase Z" & @CRLF & _ "91 133 5B 01011011 [ &#91; Opening bracket" & @CRLF & _ "92 134 5C 01011100 \ &#92; Backslash" & @CRLF & _ "93 135 5D 01011101 ] &#93; Closing bracket" & @CRLF & _ "94 136 5E 01011110 ^ &#94; Caret - circumflex" & @CRLF & _ "95 137 5F 01011111 _ &#95; Underscore" & @CRLF & _ "96 140 60 01100000 ` &#96; Grave accent" & @CRLF & _ "97 141 61 01100001 a &#97; Lowercase a" & @CRLF & _ "98 142 62 01100010 b &#98; Lowercase b" & @CRLF & _ "99 143 63 01100011 c &#99; Lowercase c" & @CRLF & _ "100 144 64 01100100 d &#100; Lowercase d" & @CRLF & _ "101 145 65 01100101 e &#101; Lowercase e" & @CRLF & _ "102 146 66 01100110 f &#102; Lowercase f" & @CRLF & _ "103 147 67 01100111 g &#103; Lowercase g" & @CRLF & _ "104 150 68 01101000 h &#104; Lowercase h" & @CRLF & _ "105 151 69 01101001 i &#105; Lowercase i" & @CRLF & _ "106 152 6A 01101010 j &#106; Lowercase j" & @CRLF & _ "107 153 6B 01101011 k &#107; Lowercase k" & @CRLF & _ "108 154 6C 01101100 l &#108; Lowercase l" & @CRLF & _ "109 155 6D 01101101 m &#109; Lowercase m" & @CRLF & _ "110 156 6E 01101110 n &#110; Lowercase n" & @CRLF & _ "111 157 6F 01101111 o &#111; Lowercase o" & @CRLF & _ "112 160 70 01110000 p &#112; Lowercase p" & @CRLF & _ "113 161 71 01110001 q &#113; Lowercase q" & @CRLF & _ "114 162 72 01110010 r &#114; Lowercase r" & @CRLF & _ "115 163 73 01110011 s &#115; Lowercase s" & @CRLF & _ "116 164 74 01110100 t &#116; Lowercase t" & @CRLF & _ "117 165 75 01110101 u &#117; Lowercase u" & @CRLF & _ "118 166 76 01110110 v &#118; Lowercase v" & @CRLF & _ "119 167 77 01110111 w &#119; Lowercase w" & @CRLF & _ "120 170 78 01111000 x &#120; Lowercase x" & @CRLF & _ "121 171 79 01111001 y &#121; Lowercase y" & @CRLF & _ "122 172 7A 01111010 z &#122; Lowercase z" & @CRLF & _ "123 173 7B 01111011 { &#123; Opening brace" & @CRLF & _ "124 174 7C 01111100 | &#124; Vertical bar" & @CRLF & _ "125 175 7D 01111101 } &#125; Closing brace" & @CRLF & _ "126 176 7E 01111110 ~ &#126; Equivalency sign - tilde" & @CRLF & _ "127 177 7F 01111111 &#127; Delete" 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