Regular Expressions 101

Save & Share

  • Current Version: 1
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to 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
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
Processing...

Test String

Code Generator

Generated Code

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

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 Golang, please visit: https://golang.org/pkg/regexp/