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

/
/
mg

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)^([^_\n]+)(?(?=_)|(?=\.jpg))" Local $sString = "EAR-LESS2.P.jpg" & @CRLF & _ "EAR-LONG.jpg" & @CRLF & _ "EAR-SPAR1.jpg" & @CRLF & _ "EAR-SUST.H.jpg" & @CRLF & _ "EAR-TANYIN.jpg" & @CRLF & _ "EF-GILD.H.jpg" & @CRLF & _ "EFR-CHASD2.jpg" & @CRLF & _ "EL-GOIN.P.jpg" & @CRLF & _ "EL-LOVE.jpg" & @CRLF & _ "EM-CHAS.jpg" & @CRLF & _ "EM-GARD.jpg" & @CRLF & _ "EM-MENW.jpg" & @CRLF & _ "EM-TENK.jpg" & @CRLF & _ "EM-THIR.H.jpg" & @CRLF & _ "EM-WHATC.P.jpg" & @CRLF & _ "EMO-ANTI.S_1.jpg" & @CRLF & _ "EMO-SOUN.jpg" & @CRLF & _ "EO-AMIL1.jpg" & @CRLF & _ "EO-BIURT.jpg" & @CRLF & _ "EO-CHASI.jpg" & @CRLF & _ "EO-ETER.jpg" & @CRLF & _ "EO-FOUR.jpg" & @CRLF & _ "EO-GPSHM.H.jpg" & @CRLF & _ "EO-HAPP.jpg" & @CRLF & _ "EO-INNEW.jpg" & @CRLF & _ "EO-JEWIBLAL.jpg" & @CRLF & _ "EO-JEWIL.jpg" & @CRLF & _ "EO-LETTOL.jpg" & @CRLF & _ "EO-PARSM2.jpg" & @CRLF & _ "EO-PRAYPO1.jpg" & @CRLF & _ "EO-SECO.jpg" & @CRLF & _ "EO-SPIR.jpg" & @CRLF & _ "EO-TEACAHP.jpg" & @CRLF & _ "EO-TEFI.jpg" & @CRLF & _ "EO-THIN.jpg" & @CRLF & _ "EO-TOBE.jpg" & @CRLF & _ "EO-UPSH.jpg" & @CRLF & _ "EO-VISU.jpg" & @CRLF & _ "EO-YAHASP.jpg" & @CRLF & _ "EP-STH.SFLE.jpg" & @CRLF & _ "ERE-BEYO.jpg" & @CRLF & _ "ERE-BRIN.L.jpg" & @CRLF & _ "ERE-BRIN.M.jpg" & @CRLF & _ "ERE-MIND.jpg" & @CRLF & _ "ERE-ONEBO.jpg" & @CRLF & _ "ERE-PROC4.jpg" & @CRLF & _ "ERE-TOWA.p.jpg" & @CRLF & _ "HAR-LIKUAHS_1.jpg" & @CRLF & _ "HAR-SHAAYVITPK.jpg" & @CRLF & _ "HAR-SM64.jpg" & @CRLF & _ "HAR-TANYCM5.jpg" & @CRLF & _ "HAR-TANYCM7.jpg" & @CRLF & _ "HFR-MAAM1.jpg" & @CRLF & _ "HFR-MAAM3.jpg" & @CRLF & _ "HFR-ZICH.S_1.jpg" & @CRLF & _ "HFR-ZICH.S_2.jpg" & @CRLF & _ "HH-TOLDCP.jpg" & @CRLF & _ "HH-TOLDCRT.jpg" & @CRLF & _ "HKO-28SIVA.jpg" & @CRLF & _ "HMR-ATER.jpg" & @CRLF & _ "HMR-SMD2.jpg" & @CRLF & _ "HO-CHON.S_1.jpg" & @CRLF & _ "HO-CHON.S_3.jpg" & @CRLF & _ "HO-HASH3.jpg" & @CRLF & _ "HO-HASH4.jpg" & @CRLF & _ "HO-TANYLKV.jpg" & @CRLF & _ "HO-TISH.jpg" & @CRLF & _ "HO-YALKLY1.jpg" & @CRLF & _ "HO-YALKLY3.jpg" & @CRLF & _ "HO-YALKLYMC.jpg" & @CRLF & _ "HO-YAMITPE.jpg" & @CRLF & _ "HP-HAGG.KITZEE.jpg" & @CRLF & _ "HP-HAGG.S_1.jpg" & @CRLF & _ "HP-HAGG.Y.jpg" & @CRLF & _ "HP-STH.NSGR.jpg" & @CRLF & _ "HP-STMH_1.jpg" & @CRLF & _ "HRE-BIURBR_2.jpg" & @CRLF & _ "HRE-HAME_1.jpg" & @CRLF & _ "HRE-HAME_2.jpg" & @CRLF & _ "HRE-HASIS.jpg" & @CRLF & _ "HRE-HAYO.MEV_2.jpg" & @CRLF & _ "HRE-HAYOYMH.jpg" & @CRLF & _ "HRE-MAAY.jpg" & @CRLF & _ "HRE-OTSALSKY.jpg" & @CRLF & _ "HRE-SHAAEY.jpg" & @CRLF & _ "HRE-SHAAMYO.jpg" & @CRLF & _ "HRE-SHAAMYU.jpg" & @CRLF & _ "HRE-SMMC.jpg" & @CRLF & _ "HRE-SMMRH.jpg" & @CRLF & _ "HRE-TM1.l.jpg" & @CRLF & _ "HRE-TM10.jpg" & @CRLF & _ "HRE-TM18.jpg" & @CRLF & _ "HRE-TM21.jpg" & @CRLF & _ "HRE-TM30.jpg" & @CRLF & _ "HRE-TM35.jpg" & @CRLF & _ "HRE-TM37.jpg" & @CRLF & _ "HRE-TM41.jpg" & @CRLF & _ "HRE-TM54.jpg" & @CRLF & _ "HRE-TM57.jpg" & @CRLF & _ "HRE-TM62.jpg" & @CRLF & _ "HRE-TM71.jpg" & @CRLF & _ "HRE-TMMAFT_1.jpg" & @CRLF & _ "HRE-TMTLYV.OLD.jpg" & @CRLF & _ "HRE-VEAT.jpg" & @CRLF & _ "HRR-SM72BESH1.jpg" & @CRLF & _ "HRR-SM72BESH3.jpg" & @CRLF & _ "HTZ-HACH.jpg" & @CRLF & _ "HTZ-MAFT.jpg" & @CRLF & _ "HTZ-OHBA3.jpg" & @CRLF & _ "HTZ-OHBR5.jpg" & @CRLF & _ "HTZ-OHBR6.jpg" & @CRLF & _ "HTZ-OHD2.jpg" & @CRLF & _ "HTZ-OHD3.jpg" & @CRLF & _ "HTZ-OHN1.jpg" & @CRLF & _ "HTZ-OHN3.jpg" & @CRLF & _ "HTZ-OHS5.jpg" & @CRLF & _ "HTZ-OHS6.jpg" & @CRLF & _ "HTZ-OHSH1.jpg" & @CRLF & _ "HTZ-OHSH2.jpg" & @CRLF & _ "HTZ-OHSH2.jpg" & @CRLF & _ "HTZ-SLA3.jpg" & @CRLF & _ "HTZ-SLA4.jpg" & @CRLF & _ "HTZ-SLC1.jpg" & @CRLF & _ "HTZ-SLC2.jpg" & @CRLF & _ "HTZ-SLK.jpg" & @CRLF & _ "HTZ-SLM3.jpg" & @CRLF & _ "HTZ-SLMA.jpg" & @CRLF & _ "HTZ-SLMI.jpg" & @CRLF & _ "HTZ-SLS.jpg" & @CRLF & _ "HTZ-SLY3.jpg" & @CRLF & _ "HTZ-SMH1.jpg" & @CRLF & _ "efr-ss98.jpg" & @CRLF & _ "el-shabp.jpg" & @CRLF & _ "em-some.jpg" & @CRLF & _ "eo-248p.jpg" & @CRLF & _ "eo-jewi1.jpg" & @CRLF & _ "eo-littbbi.jpg" & @CRLF & _ "ep-sibc.ws.jpg" & @CRLF & _ "ere-beac.jpg" & @CRLF & _ "ere-holi.sb_1.jpg" & @CRLF & _ "ere-seek.jpg" & @CRLF & _ "ese-talk.p.jpg" & @CRLF & _ "har-shiu.s_2.jpg" & @CRLF & _ "har-shiu.s_3.jpg" & @CRLF & _ "har-tany.loh.jpg" & @CRLF & _ "hfr-ik10.jpg" & @CRLF & _ "hfr-ik11.jpg" & @CRLF & _ "hfr-ik15.jpg" & @CRLF & _ "hfr-ik17.jpg" & @CRLF & _ "hfr-ik6.jpg" & @CRLF & _ "hfr-likud.s_1.jpg" & @CRLF & _ "hfr-sm80.jpg" & @CRLF & _ "hfr-sm92.jpg" & @CRLF & _ "hku-tziy.jpg" & @CRLF & _ "ho-biurl.jpg" & @CRLF & _ "ho-yeso.jpg" & @CRLF & _ "hp-sth.ln.jpg" & @CRLF & _ "hp-tehi.l.jpg" & @CRLF & _ "hre-ik11.jpg" & @CRLF & _ "hre-ik13.jpg" & @CRLF & _ "hre-ik14.jpg" & @CRLF & _ "hre-ik15.jpg" & @CRLF & _ "hre-ik16.jpg" & @CRLF & _ "hre-ik18.jpg" & @CRLF & _ "hre-ik2.jpg" & @CRLF & _ "hre-ik20.jpg" & @CRLF & _ "hre-ik22.jpg" & @CRLF & _ "hre-ik23.jpg" & @CRLF & _ "hre-ik27.jpg" & @CRLF & _ "hre-ik31.jpg" & @CRLF & _ "hre-ik33.jpg" & @CRLF & _ "hre-ik4.jpg" & @CRLF & _ "hre-ik5.jpg" & @CRLF & _ "hre-ik9.jpg" & @CRLF & _ "hre-ikm1.jpg" & @CRLF & _ "hre-ikm3.jpg" & @CRLF & _ "hre-klalrs.jpg" & @CRLF & _ "hre-ls2.jpg" & @CRLF & _ "hre-ls26.jpg" & @CRLF & _ "hre-ls28.jpg" & @CRLF & _ "hre-ls32.jpg" & @CRLF & _ "hre-ls36.jpg" & @CRLF & _ "hre-otsaik.jpg" & @CRLF & _ "hre-shaag_1.jpg" & @CRLF & _ "hre-smm.s_1.jpg" & @CRLF & _ "hre-smm.s_4.jpg" & @CRLF & _ "hrm-ik.jpg" & @CRLF & _ "hrm-sm26.jpg" & @CRLF & _ "hrm-sm28.jpg" & @CRLF & _ "hrm-sm32.s_2.jpg" & @CRLF & _ "hrm-sm33.s_1.jpg" & @CRLF & _ "hrm-sm37.s_1.jpg" & @CRLF & _ "hrm-sm41.jpg" & @CRLF & _ "hrr-ik3.jpg" & @CRLF & _ "hrr-ik5.jpg" & @CRLF & _ "hrr-sm43.jpg" & @CRLF & _ "hrr-sm52.jpg" & @CRLF & _ "hrr-sm59.jpg" & @CRLF & _ "hrr-sm66yomt.jpg" & @CRLF & _ "hrr-sm69.jpg" & @CRLF & _ "hrr-sm79.jpg" & @CRLF & _ "htz-tzemtoc_1.jpg" 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