Regular Expressions 101

Save & Manage Regex

  • Current Version: 1
  • Save & Share
  • Community Library

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
Sponsors
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
Processing...

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)\bBYPASS(?: \d){3}\n *<VST "VST: (?!FreeG\b)[\s\S]*?\n *>(?:\n(?! *<).*)*\n *WAK \d \d\b" Local $sString = "<REAPER_PROJECT 0.1 "6.66/win64" 1661967203" & @CRLF & _ " <NOTES 0 2" & @CRLF & _ " >" & @CRLF & _ " RIPPLE 0" & @CRLF & _ " GROUPOVERRIDE 0 0 0" & @CRLF & _ " AUTOXFADE 1" & @CRLF & _ " ENVATTACH 3" & @CRLF & _ " POOLEDENVATTACH 0" & @CRLF & _ " MIXERUIFLAGS 11 48" & @CRLF & _ " PEAKGAIN 1" & @CRLF & _ " FEEDBACK 0" & @CRLF & _ " PANLAW 1" & @CRLF & _ " PROJOFFS 0 0 0" & @CRLF & _ " MAXPROJLEN 0 600" & @CRLF & _ " GRID 3199 8 1 8 1 0 0 0" & @CRLF & _ " TIMEMODE 1 5 -1 30 0 0 -1" & @CRLF & _ " VIDEO_CONFIG 0 0 256" & @CRLF & _ " PANMODE 3" & @CRLF & _ " CURSOR 0" & @CRLF & _ " ZOOM 41.11416036604871 0 0" & @CRLF & _ " VZOOMEX 6 0" & @CRLF & _ " USE_REC_CFG 0" & @CRLF & _ " RECMODE 1" & @CRLF & _ " SMPTESYNC 0 30 100 40 1000 300 0 0 1 0 0" & @CRLF & _ " LOOP 0" & @CRLF & _ " LOOPGRAN 0 4" & @CRLF & _ " RECORD_PATH "" """ & @CRLF & _ " <RECORD_CFG" & @CRLF & _ " ZXZhdxgAAA==" & @CRLF & _ " >" & @CRLF & _ " <APPLYFX_CFG" & @CRLF & _ " >" & @CRLF & _ " RENDER_FILE """ & @CRLF & _ " RENDER_PATTERN """ & @CRLF & _ " RENDER_FMT 0 2 0" & @CRLF & _ " RENDER_1X 0" & @CRLF & _ " RENDER_RANGE 1 0 0 18 1000" & @CRLF & _ " RENDER_RESAMPLE 3 0 1" & @CRLF & _ " RENDER_ADDTOPROJ 0" & @CRLF & _ " RENDER_STEMS 0" & @CRLF & _ " RENDER_DITHER 0" & @CRLF & _ " TIMELOCKMODE 1" & @CRLF & _ " TEMPOENVLOCKMODE 1" & @CRLF & _ " ITEMMIX 1" & @CRLF & _ " DEFPITCHMODE 589824 0" & @CRLF & _ " TAKELANE 1" & @CRLF & _ " SAMPLERATE 44100 0 0" & @CRLF & _ " <RENDER_CFG" & @CRLF & _ " ZXZhdxgAAA==" & @CRLF & _ " >" & @CRLF & _ " LOCK 1" & @CRLF & _ " <METRONOME 6 2" & @CRLF & _ " VOL 0.25 0.125" & @CRLF & _ " FREQ 800 1600 1" & @CRLF & _ " BEATLEN 4" & @CRLF & _ " SAMPLES "" """ & @CRLF & _ " PATTERN 2863311530 2863311529" & @CRLF & _ " MULT 1" & @CRLF & _ " >" & @CRLF & _ " GLOBAL_AUTO -1" & @CRLF & _ " TEMPO 120 4 4" & @CRLF & _ " PLAYRATE 1 0 0.25 4" & @CRLF & _ " SELECTION 0 0" & @CRLF & _ " SELECTION2 0 0" & @CRLF & _ " MASTERAUTOMODE 0" & @CRLF & _ " MASTERTRACKHEIGHT 0 0" & @CRLF & _ " MASTERPEAKCOL 16576" & @CRLF & _ " MASTERMUTESOLO 0" & @CRLF & _ " MASTERTRACKVIEW 0 0.6667 0.5 0.5 -1 -1 -1 0 0 0 -1 -1 0" & @CRLF & _ " MASTERHWOUT 0 0 1 0 0 0 0 -1" & @CRLF & _ " MASTER_NCH 2 2" & @CRLF & _ " MASTER_VOLUME 1 0 -1 -1 1" & @CRLF & _ " MASTER_PANMODE 3" & @CRLF & _ " MASTER_FX 1" & @CRLF & _ " MASTER_SEL 0" & @CRLF & _ " <MASTERPLAYSPEEDENV" & @CRLF & _ " EGUID {07BFCFC9-6DA0-4D9C-8821-7D1555F3F3F8}" & @CRLF & _ " ACT 0 -1" & @CRLF & _ " VIS 0 1 1" & @CRLF & _ " LANEHEIGHT 0 0" & @CRLF & _ " ARM 0" & @CRLF & _ " DEFSHAPE 0 -1 -1" & @CRLF & _ " >" & @CRLF & _ " <TEMPOENVEX" & @CRLF & _ " EGUID {9059CD91-68BB-42A7-8E08-BCDDCB3AC50B}" & @CRLF & _ " ACT 0 -1" & @CRLF & _ " VIS 1 0 1" & @CRLF & _ " LANEHEIGHT 0 0" & @CRLF & _ " ARM 0" & @CRLF & _ " DEFSHAPE 1 -1 -1" & @CRLF & _ " >" & @CRLF & _ " <PROJBAY" & @CRLF & _ " >" & @CRLF & _ " <TRACK {6186BBDC-D455-4398-90C0-668CF17125E9}" & @CRLF & _ " NAME DAC" & @CRLF & _ " PEAKCOL 16576" & @CRLF & _ " BEAT -1" & @CRLF & _ " AUTOMODE 0" & @CRLF & _ " VOLPAN 1 0 -1 -1 1" & @CRLF & _ " MUTESOLO 0 0 0" & @CRLF & _ " IPHASE 0" & @CRLF & _ " PLAYOFFS 0 1" & @CRLF & _ " ISBUS 0 0" & @CRLF & _ " BUSCOMP 0 0 0 0 0" & @CRLF & _ " SHOWINMIX 1 0.6667 0.5 1 0.5 -1 -1 -1" & @CRLF & _ " SEL 1" & @CRLF & _ " REC 0 0 1 0 0 0 0 0" & @CRLF & _ " VU 2" & @CRLF & _ " TRACKHEIGHT 0 0 0 0 0 0" & @CRLF & _ " INQ 0 0 0 0.5 100 0 0 100" & @CRLF & _ " NCHAN 2" & @CRLF & _ " FX 1" & @CRLF & _ " TRACKID {6186BBDC-D455-4398-90C0-668CF17125E9}" & @CRLF & _ " PERF 0" & @CRLF & _ " MIDIOUT -1" & @CRLF & _ " MAINSEND 1 0" & @CRLF & _ " <FXCHAIN" & @CRLF & _ " WNDRECT 500 247 511 642" & @CRLF & _ " SHOW 0" & @CRLF & _ " LASTSEL 1" & @CRLF & _ " DOCKED 0" & @CRLF & _ " BYPASS 0 0 0" & @CRLF & _ " <VST "VST: Saturation Knob (Softube)" "Saturation Knob.dll" 0 "" 1935766638<5653547361746E73617475726174696F> """ & @CRLF & _ " bnRhc+9e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAEAAAAAAAAAAAABAA" & @CRLF & _ " 776t3g3wrd5mZmY+AAAAPw==" & @CRLF & _ " RGVmYXVsdABEZWZhdWx0ABAAAAA=" & @CRLF & _ " >" & @CRLF & _ " PRESETNAME Default" & @CRLF & _ " FLOATPOS 0 0 0 0" & @CRLF & _ " FXID {A9ED49E2-2CFE-4675-A539-CFA091920D52}" & @CRLF & _ " WAK 0 0" & @CRLF & _ " BYPASS 0 0 0" & @CRLF & _ " <VST "VST: FreeG (Sonalksis)" "Sonalksis FreeG Stereo (64 bit).dll" 0 "" 1181894483<56535446724753667265656700000000> """ & @CRLF & _ " U0dyRu5e7f4CAAAAAQAAAAAAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAAAAAAAPAAAAAEAAAAAABAA" & @CRLF & _ " V0oxPgAAAD8AAAAAAAAAAAAAAAAAAAA/AAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAA" & @CRLF & _ " AE5vbmUAEAAAAA==" & @CRLF & _ " >" & @CRLF & _ " PRESETNAME None" & @CRLF & _ " FLOATPOS 0 0 0 0" & @CRLF & _ " FXID {36381E0B-FD44-4B23-BA25-E9CC29920FFB}" & @CRLF & _ " WAK 0 0" & @CRLF & _ " >" & @CRLF & _ " <ITEM" & @CRLF & _ " POSITION 0" & @CRLF & _ " SNAPOFFS 0" & @CRLF & _ " LENGTH 14.22222222222222" & @CRLF & _ " LOOP 1" & @CRLF & _ " ALLTAKES 0" & @CRLF & _ " FADEIN 1 0.01 0 1 0 0 0" & @CRLF & _ " FADEOUT 1 0.01 0 1 0 0 0" & @CRLF & _ " MUTE 0 0" & @CRLF & _ " SEL 1" & @CRLF & _ " IGUID {8FA4C4EF-ACED-4A1E-B4E0-AAAF41D8BCA4}" & @CRLF & _ " IID 1" & @CRLF & _ " NAME dac.wav" & @CRLF & _ " VOLPAN 1 0 1 -1" & @CRLF & _ " SOFFS 0" & @CRLF & _ " PLAYRATE 1 1 0 -1 0 0.0025" & @CRLF & _ " CHANMODE 0" & @CRLF & _ " GUID {FD68F37C-6841-45B5-803E-83BB63FA6E98}" & @CRLF & _ " <SOURCE WAVE" & @CRLF & _ " FILE "dac.wav"" & @CRLF & _ " >" & @CRLF & _ " >" & @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