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

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