Regular Expressions 101

Save & Share

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

Substitution

Processing...

Code Generator

Generated Code

#include <MsgBoxConstants.au3> ; to declare the Constants of MsgBox Local $sRegex = "(?m)^(.+)(\[ *)(\d+)(\] *)(.+ )(.+)$" Local $sString = "DIN[ 1] ON DCS_SpeedSafe" & @CRLF & _ "DIN[ 201] ON *IMSTP" & @CRLF & _ "DIN[ 202] ON *HOLD" & @CRLF & _ "DIN[ 203] ON SFSPD" & @CRLF & _ "DIN[ 204] OFF CSTOPI" & @CRLF & _ "DIN[ 205] OFF FAULT RESET" & @CRLF & _ "DIN[ 206] OFF START" & @CRLF & _ "DIN[ 207] OFF HOME" & @CRLF & _ "DIN[ 208] ON ENBL" & @CRLF & _ "DIN[ 209] OFF RSR1" & @CRLF & _ "DIN[ 210] OFF RSR2" & @CRLF & _ "DIN[ 211] OFF RSR3" & @CRLF & _ "DIN[ 212] OFF RSR4" & @CRLF & _ "DIN[ 213] OFF RSR5" & @CRLF & _ "DIN[ 214] OFF RSR6" & @CRLF & _ "DIN[ 215] OFF RSR7" & @CRLF & _ "DIN[ 216] OFF RSR8" & @CRLF & _ "DIN[ 219] OFF SempreOff" & @CRLF & _ "DIN[ 220] OFF Abilita Ciclo" & @CRLF & _ "DIN[ 221] OFF Abilitazione generale" & @CRLF & _ "DIN[ 225] OFF CaricoOk" & @CRLF & _ "DIN[ 226] OFF CarFuoriIngombro" & @CRLF & _ "DIN[ 227] OFF TraslOK" & @CRLF & _ "DIN[ 228] OFF TraslFuoriIngombro" & @CRLF & _ "DIN[ 229] OFF PezPresNastroCarico" & @CRLF & _ "DIN[ 230] OFF FtControlloSagoma1" & @CRLF & _ "DIN[ 231] OFF FtControlloSagoma2" & @CRLF & _ "DIN[ 232] OFF TipSagoma1" & @CRLF & _ "DIN[ 233] OFF TipSagoma2" & @CRLF & _ "DIN[ 234] OFF TavRqDepo1" & @CRLF & _ "DIN[ 235] OFF TavRqScambio1" & @CRLF & _ "DIN[ 236] OFF TavRqPrel1" & @CRLF & _ "DIN[ 237] OFF TavPezScarto" & @CRLF & _ "DIN[ 238] OFF TavFuoriImgombro" & @CRLF & _ "DIN[ 239] OFF TavInclusa" & @CRLF & _ "DIN[ 240] OFF PrelievoNastroCarico" & @CRLF & _ "DIN[ 241] OFF PrelievoTavola" & @CRLF & _ "DIN[ 242] OFF ScartoCtrlUsura" & @CRLF & _ "DIN[ 243] OFF TavPezPres1" & @CRLF & _ "DIN[ 244] OFF TavPezPres2" & @CRLF & _ "DIN[ 245] OFF Ctrl Ft Enable" & @CRLF & _ "DIN[ 246] OFF TavRqDepo2" & @CRLF & _ "DIN[ 247] OFF TavRqScambio2" & @CRLF & _ "DIN[ 248] OFF TavRqPrel2" & @CRLF & _ "DIN[ 249] OFF NastroAbil" & @CRLF & _ "DIN[ 250] OFF Carico2Ok" & @CRLF & _ "DIN[ 251] OFF Car2FuoriIng" & @CRLF & _ "DIN[ 252] OFF PezPresNastro2" & @CRLF & _ "DIN[ 253] OFF Nastro2Abil" & @CRLF & _ "DIN[ 254] OFF PriorAltern/Nas2" & @CRLF & _ "DIN[ 255] OFF DemoOffsEsegui" & @CRLF & _ "DIN[ 256] OFF DemoOffsAddOffs" & @CRLF & _ "DIN[ 257] OFF EnbCtrlSmussi" & @CRLF & _ "DIN[ 258] OFF CtrlSmussiRisKo" & @CRLF & _ "DIN[ 259] OFF CtrlSmussiRisOk" & @CRLF & _ "DIN[ 260] OFF EnbCtrlColore" & @CRLF & _ "DIN[ 261] OFF CtrlColoreRisKo" & @CRLF & _ "DIN[ 262] OFF CtrlColoreRisOk" & @CRLF & _ "DIN[ 263] OFF CassScartoPres" & @CRLF & _ "DIN[ 265] OFF Prel1_StopRq" & @CRLF & _ "DIN[ 266] OFF Prel2_StopRq" & @CRLF & _ "DIN[ 267] OFF DepoTrasl_StopRq" & @CRLF & _ "DIN[ 268] OFF DepoTav1_StopRq" & @CRLF & _ "DIN[ 269] OFF DepoTav2_StopRq" & @CRLF & _ "DIN[ 270] OFF CtrlSmus_StopRq" & @CRLF & _ "DIN[ 273] OFF Magnet_A" & @CRLF & _ "DIN[ 274] OFF Smagnet_A" & @CRLF & _ "DIN[ 275] OFF Magnet_B" & @CRLF & _ "DIN[ 276] OFF Smagnet_B" & @CRLF & _ "DIN[ 277] OFF SoffioA" & @CRLF & _ "DIN[ 278] OFF SoffioB" & @CRLF & _ "DOUT[ 201] OFF CMDENBL" & @CRLF & _ "DOUT[ 202] ON SYSRDY" & @CRLF & _ "DOUT[ 203] OFF PROGRUN" & @CRLF & _ "DOUT[ 204] OFF PAUSED" & @CRLF & _ "DOUT[ 205] OFF HELD" & @CRLF & _ "DOUT[ 206] OFF FAULT" & @CRLF & _ "DOUT[ 207] ON ATPERCH" & @CRLF & _ "DOUT[ 208] OFF TPENBL" & @CRLF & _ "DOUT[ 209] OFF BATALM" & @CRLF & _ "DOUT[ 210] OFF BUSY" & @CRLF & _ "DOUT[ 211] OFF ACK1" & @CRLF & _ "DOUT[ 212] OFF ACK2" & @CRLF & _ "DOUT[ 213] OFF ACK3" & @CRLF & _ "DOUT[ 214] OFF ACK4" & @CRLF & _ "DOUT[ 215] OFF ACK5" & @CRLF & _ "DOUT[ 216] OFF ACK6" & @CRLF & _ "DOUT[ 217] OFF NumProgErr" & @CRLF & _ "DOUT[ 218] ON InHome" & @CRLF & _ "DOUT[ 219] OFF InManut" & @CRLF & _ "DOUT[ 220] OFF InRiscaldamento" & @CRLF & _ "DOUT[ 221] OFF InPulizPz" & @CRLF & _ "DOUT[ 222] OFF InCheckFt" & @CRLF & _ "DOUT[ 223] OFF SegnaliSimulati" & @CRLF & _ "DOUT[ 224] OFF Modo T1 Attivo" & @CRLF & _ "DOUT[ 233] OFF CicloRiposo(Tappa0)" & @CRLF & _ "DOUT[ 234] OFF PezPrelNastroCarico" & @CRLF & _ "DOUT[ 235] OFF CicloNastroCarico" & @CRLF & _ "DOUT[ 236] ON NastroCaricoFuoriIng" & @CRLF & _ "DOUT[ 237] OFF PezDepTrasl" & @CRLF & _ "DOUT[ 238] OFF CicloTrasl" & @CRLF & _ "DOUT[ 239] ON TraslFuoriIng" & @CRLF & _ "DOUT[ 240] OFF PezScarto" & @CRLF & _ "DOUT[ 241] OFF PzNoPrelNastroCarico" & @CRLF & _ "DOUT[ 242] OFF TavPezDep1" & @CRLF & _ "DOUT[ 243] OFF TavPezScambio1 " & @CRLF & _ "DOUT[ 244] OFF TavPezPrel1" & @CRLF & _ "DOUT[ 245] ON TavFuoriIng" & @CRLF & _ "DOUT[ 246] OFF CicloTav" & @CRLF & _ "DOUT[ 247] OFF TavPezNoPrel1" & @CRLF & _ "DOUT[ 248] OFF TavPezNoPrel2" & @CRLF & _ "DOUT[ 249] OFF TavPezDep2" & @CRLF & _ "DOUT[ 250] OFF TavPezScambio2" & @CRLF & _ "DOUT[ 251] OFF TavPezPrel2" & @CRLF & _ "DOUT[ 252] OFF PezPrelNastro2" & @CRLF & _ "DOUT[ 253] OFF CicloNastro2" & @CRLF & _ "DOUT[ 254] OFF FuoriIngNastro2" & @CRLF & _ "DOUT[ 255] OFF PezNoPrelNas2" & @CRLF & _ "DOUT[ 256] OFF DemoOfsPosOk" & @CRLF & _ "DOUT[ 257] OFF PosCtrlSmussi" & @CRLF & _ "DOUT[ 258] OFF PosCtrlColore" & @CRLF & _ "DOUT[ 259] ON FuoriIngCtrlSmus" & @CRLF & _ "DOUT[ 260] ON FuoriIngProfil" & @CRLF & _ "DOUT[ 267] OFF MagneteAAttira" & @CRLF & _ "DOUT[ 268] OFF MagnateARilascia" & @CRLF & _ "DOUT[ 269] OFF MagneteBAttira" & @CRLF & _ "DOUT[ 270] OFF MagneteBRilascia" & @CRLF & _ "DOUT[ 273] OFF Prel1_Stop" & @CRLF & _ "DOUT[ 274] OFF Prel2_Stop" & @CRLF & _ "DOUT[ 275] OFF DepoTrasl_Stop" & @CRLF & _ "DOUT[ 276] OFF DepoTav1_Stop" & @CRLF & _ "DOUT[ 277] OFF DepoTav2_Stop" & @CRLF & _ "DOUT[ 278] OFF CtrlSmus_Stop" & @CRLF & _ "GIN[ 1] 0 NumProg" & @CRLF & _ "GIN[ 2] 0 VelCiclo" & @CRLF & _ "GIN[ 3] 0 CodPastiglia" & @CRLF & _ "GIN[ 4] 0 Offset X" & @CRLF & _ "GIN[ 5] 0 Offset Y" & @CRLF & _ "GIN[ 6] 0 Offset Z" & @CRLF & _ "GIN[ 7] 0 Offset rotaz X" & @CRLF & _ "GIN[ 8] 0 Offset rotaz Y" & @CRLF & _ "GIN[ 9] 0 Offset rotaz Z" & @CRLF & _ "GIN[ 15] 0 CmdMan" & @CRLF & _ "GOUT[ 1] 0 NumeroProgAttivo" & @CRLF & _ "GOUT[ 2] 0 ComandoEseguito" & @CRLF & _ "GOUT[ 3] 0 DemoOffsNumPos" & @CRLF & _ "UI[ 1] ON *IMSTP" & @CRLF & _ "UI[ 2] ON *Hold" & @CRLF & _ "UI[ 3] ON *SFSPD" & @CRLF & _ "UI[ 4] OFF Cycle stop" & @CRLF & _ "UI[ 5] OFF Fault reset" & @CRLF & _ "UI[ 6] OFF Start" & @CRLF & _ "UI[ 7] OFF Home" & @CRLF & _ "UI[ 8] ON Enable" & @CRLF & _ "UI[ 9] OFF Rsr0001" & @CRLF & _ "UI[ 10] OFF RSR2/PNS2/STYLE2" & @CRLF & _ "UI[ 11] OFF RSR3/PNS3/STYLE3" & @CRLF & _ "UI[ 12] OFF RSR4/PNS4/STYLE4" & @CRLF & _ "UI[ 13] OFF RSR5/PNS5/STYLE5" & @CRLF & _ "UI[ 14] OFF RSR6/PNS6/STYLE6" & @CRLF & _ "UI[ 15] OFF RSR7/PNS7/STYLE7" & @CRLF & _ "UI[ 16] OFF RSR8/PNS8/STYLE8" & @CRLF & _ "UO[ 1] OFF Cmd enabled" & @CRLF & _ "UO[ 2] ON System ready" & @CRLF & _ "UO[ 3] OFF Prg running" & @CRLF & _ "UO[ 4] OFF Prg paused" & @CRLF & _ "UO[ 5] OFF Motion held" & @CRLF & _ "UO[ 6] OFF Fault" & @CRLF & _ "UO[ 7] ON At perch" & @CRLF & _ "UO[ 8] OFF TP enabled" & @CRLF & _ "UO[ 9] OFF Batt alarm" & @CRLF & _ "UO[ 10] OFF Busy" & @CRLF & _ "UO[ 11] OFF ACK1/SNO1" & @CRLF & _ "UO[ 12] OFF ACK2/SNO2" & @CRLF & _ "UO[ 13] OFF ACK3/SNO3" & @CRLF & _ "UO[ 14] OFF ACK4/SNO4" & @CRLF & _ "UO[ 15] OFF ACK5/SNO5" & @CRLF & _ "UO[ 16] OFF ACK6/SNO6" & @CRLF & _ "SI[ 1] OFF Fault reset" & @CRLF & _ "SI[ 2] ON Remote" & @CRLF & _ "SI[ 3] ON Hold" & @CRLF & _ "SI[ 4] OFF User PB#1" & @CRLF & _ "SI[ 5] OFF User PB#2" & @CRLF & _ "SI[ 6] OFF Cycle start" & @CRLF & _ "SI[ 8] ON CE/CR Select b0" & @CRLF & _ "SI[ 9] ON CE/CR Select b1" & @CRLF & _ "SO[ 1] OFF Cycle start" & @CRLF & _ "SO[ 2] OFF Hold" & @CRLF & _ "SO[ 3] OFF Fault LED" & @CRLF & _ "SO[ 4] OFF Batt alarm" & @CRLF & _ "SO[ 5] OFF User LED#1" & @CRLF & _ "SO[ 6] OFF User LED#2" & @CRLF & _ "SO[ 7] OFF TP enabled" & @CRLF & _ "RO[ 1] OFF SoffioA" & @CRLF & _ "RO[ 2] OFF SoffioB" & @CRLF & _ "FLG[ 1] OFF DCS_SpeedSafeMem" & @CRLF & _ "FLG[ 2] OFF Simula" & @CRLF & _ "FLG[ 3] OFF RemoteOverDsb" & @CRLF & _ "" Local $sSubst = "\1 \t \3 \t \6" Local $sResult = StringRegExpReplace($sString, $sRegex, $sSubst) MsgBox($MB_SYSTEMMODAL, "Result", $sResult)

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