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
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]
  • Character class intersection
    [\w&&[^\d]]
  • 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

const regex = /<body[^>]+?>\s+(?<table>[\w\W]+)<\/body>/i; // Alternative syntax using RegExp constructor // const regex = new RegExp('<body[^>]+?>\\s+(?<table>[\\w\\W]+)<\\\/body>', 'i') const str = `<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <META NAME="Identifier-URL" CONTENT="http://www.hockey.de/"> <META NAME="keywords" CONTENT="Hockey"> <META NAME="copyright" CONTENT="&copy; hokey.de GbR"> <title>hockey.de: hoc@key Ergebnisdienst</title> <link REL="STYLESHEET" HREF="/VVI-web/Include/css.asp?lokal=WHV" type="text/css"> <script src="/VVI-web/Include/DE-java.js" type="text/javascript"></script> </head> <body bgcolor="#FFFFFF" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0> <TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=806> <!== TABELLE - 2 SPALTEN ================================================> <tr><td><table border=0 cellspacing=0 cellpadding=0 width=806> <!-- SPALTEN BREITE FIXIEREN --------------------------------------------> <tr> <td><img SRC="/VVI-web/Include/dummy.gif" height=1 width=600></td> <td><img SRC="/VVI-web/Include/dummy.gif" height=1 width=6></td> <td><img SRC="/VVI-web/Include/dummy.gif" height=1 width=200></td> </tr> <!-- HAUPT SPALTE -------------------------------------------------------> <tr><td valign=TOP><table border=0 cellspacing=0 cellpadding=0 width=600> <!-- Seiten Titel --> <tr height=62><td class=bghell> <p style="padding-left:4px;margin-bottom:16px"><b>Wer spielt wo?</b></p> <p class=TTitel style="text-align:CENTER">hoc@key Ergebnisdienst</p> <tr><td> <!-- Club, Men� --> <tr><td align=CENTER><p class=Ueber>VfB H�ls</p></td></tr> <tr><td align=CENTER><b>| <a href="?lokal=WHV&bereich=WHV&saison=&club=361&status=1&design=&tza=0&cza=1&erw=,WHV-VL1D-D,WHV-VL1D-H,WHV-VL2WE-H,WHV-VL4WE-H&jug=,WHV-JV-WJA,WHV-JV-MA,WHV-JV-MB,WHV-JV-MJB,WHV-JV-KB,WHV-WE-KC-M,WHV-WE-KD-M,WHV-WE-MINIS">Alle Ligen</a> | <b class=rot>Aktuelle Woche</b> | <a href="?lokal=WHV&bereich=WHV&saison=&club=361&status=3&design=&tza=0&cza=1&erw=,WHV-VL1D-D,WHV-VL1D-H,WHV-VL2WE-H,WHV-VL4WE-H&jug=,WHV-JV-WJA,WHV-JV-MA,WHV-JV-MB,WHV-JV-MJB,WHV-JV-KB,WHV-WE-KC-M,WHV-WE-KD-M,WHV-WE-MINIS">Rest-Saison</a> | <a href="?lokal=WHV&bereich=WHV&saison=&club=361&status=4&design=&tza=0&cza=1&erw=,WHV-VL1D-D,WHV-VL1D-H,WHV-VL2WE-H,WHV-VL4WE-H&jug=,WHV-JV-WJA,WHV-JV-MA,WHV-JV-MB,WHV-JV-MJB,WHV-JV-KB,WHV-WE-KC-M,WHV-WE-KD-M,WHV-WE-MINIS">Gesamte Saison</a> | </b></td></tr> <tr><td><img src="/VVI-web/include/dummy.gif" width=1 height=15></td></tr> <!-- Spielplan --------------------------------------------------------> <tr><td><table border=0 width=600 cellspacing=0 cellpadding=0> <tr> <td><img src="/VVI-web/include/dummy.gif" width=180 height=1></td> <td><img src="/VVI-web/include/dummy.gif" width=50 height=1></td> <td><img src="/VVI-web/include/dummy.gif" width=120 height=1></td> <td><img src="/VVI-web/include/dummy.gif" width=15 height=1></td> <td><img src="/VVI-web/include/dummy.gif" width=130 height=1></td> <td><img src="/VVI-web/include/dummy.gif" width=40 height=1></td> <td><img src="/VVI-web/include/dummy.gif" width=65 height=1></td> </tr> <tr height=25> <td valign=BOTTOM colspan=5><b class=rot>Samstag, 2. M�rz 2024</b></td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>12:30</td> <td valign=TOP class=klein>HC GMH�tte</td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>02</td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>14:00</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein>Buerscher HC</td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>05</td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>15:00</td> <td valign=TOP class=klein>Bielefelder TG</td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>07</td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>16:00</td> <td valign=TOP class=klein>HSC 05 Osnabr�ck</td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-WE-KC-M&club=361'>Liga MU10</a></td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>09</td> </tr> <tr height=25> <td valign=BOTTOM colspan=5><b class=rot>Sonntag, 3. M�rz 2024</b></td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>10:00</td> <td valign=TOP class=klein>Club Raffelberg 4</td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-VL1D-D&club=361'>1.VL Damen</a></td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>29</td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>12:00</td> <td valign=TOP class=klein>THC M�nster 3</td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-VL2WE-H&club=361'>2.VL Herren</a></td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>29</td> </tr> <tr> <td valign=TOP class=klein></td> <td valign=TOP class=klein>16:00</td> <td valign=TOP class=klein>THC M�nster 2</td> <td valign=TOP class=klein>-</td> <td valign=TOP class=klein><a href='/VVI-web/Ergebnisdienst/Ergebnisdienst.asp?lokal=WHV&saison=HALLE23&liga=WHV-VL1D-H&club=361'>1.VL Herren</a></td> <td valign=TOP class=klein>_:_</td> <td valign=TOP class=klein align=RIGHT>29</td> </tr> </table></td></tr> <!---------------------------------------------------------------------> </table></td> <!-- ZWISCHENRAUM -------------------------------------------------------> <td>&nbsp;</td> <!-- RECHTE SPALTE ------------------------------------------------------> <td valign=TOP><table border=0 cellspacing=0 cellpadding=0 width=200> <!-- Logo --> <tr><td><table border=0 cellspacing=0 cellpadding=0 width=200> <tr height=62> <td align=LEFT><img src="/VVI-web/Ergebnisdienst/Bilder/HED-Admin.gif" width=64 height=62></td> <td align=CENTER><img src="/VVI-web/Ergebnisdienst/Bilder/HED-Ergebnis.gif" width=64 height=62></td> <td align=RIGHT><img src="/VVI-web/Ergebnisdienst/Bilder/HED-Spielplan.gif" width=64 height=62></td> </tr> </table></td></tr> <tr><td><img src="/VVI-web/Include/dummy.gif" width=1 height=6></td></tr> <!-- Men� --> <tr><td class=Oberdunkel>Men�</td></tr> <tr><td><table border=0 cellspacing=0 cellpadding=4 width=200> <tr><td class=bgdunkel> <a href="/VVI-web/Ergebnisdienst/willkommen.asp?lokal=WHV&bereich=WHV"><b>&raquo; Info zum ...</b></a><br> <b class=rot>&raquo; Wer spielt wo?</b><br> <a href="/VVI-web/Ergebnisdienst/archiv.asp?lokal=WHV&bereich=WHV"><b>&raquo; Saison Archiv</b></a><br> <a href="/VVI-web/Ergebnisdienst/schnittstellen.asp?lokal=WHV&bereich=WHV"><b>&raquo; Schnittstellen</b></a><br> </td></tr> </table></td></tr> <tr><td><img src="/VVI-web/Include/dummy.gif" width=1 height=6></td></tr> <!-- Kontakt --> <tr><td class=Oberdunkel>Kontakt</td></tr> <tr><td><table border=0 cellspacing=0 cellpadding=4 width=200> <tr height=40><td class=bgdunkel> <a href="mailto:Webteam@hockey.de?subject=hoc@key Ergebnisdienst"><b><img src="/VVI-web/Include/Mail.gif" width=15 height=10 border=0 vspace=0 hspace=5 alt="Mail senden">Webteam hockey.de</b></a> </td></tr> </table></td></tr> <tr><td><img src="/VVI-web/Include/dummy.gif" width=1 height=6></td></tr> <!-- Apps f�r den Ergebnisdienst --> <tr><td> <table border=0 cellspacing=0 cellpadding=0 width=200> <tr><td class=OberDunkel>Apps f�r den Ergebnisdienst</td></tr> <tr><td bgcolor=#FFFFFF><img src="/VVI-web/Include/dummy.gif" width=1 height=4></td></tr> <tr><td align=CENTER class=bghell><a href="/VVI-web/Nachrichten/Bericht-Einzel.asp?lokal=WHV&ID=3327" title="Apps f�r den hoc@key Ergebnsidienst"><img SRC="/VVI-Web/Ergebnisdienst/Bilder/ErgebnisdienstApps2.jpg" border=0 width=200 height=200></a></td></tr> </table> </td></tr> </table></td></tr> <!-- Fuss --> <tr><td colspan=3> <table border=0 cellspacing=0 cellpadding=0 width=806> <tr><td colspan=2 style="font-size:12px">&nbsp;</td></tr> <tr><td colspan=2><hr class=schwarz></td></tr> <tr height=15> <td align=LEFT style="font-size:11px; color:#666666;"><a href="/VVI-web/Impressum.asp?lokal=WHV">&raquo; Impressum</a> &nbsp; <a href="/VVI-web/datenschutz.asp?lokal=WHV">&raquo; Datenschutz</a></td> <td align=RIGHT style="font-size:11px; color:#666666;">&copy; 2024 &#149; <a href="/VVI-web/Impressum.asp?lokal=WHV">hockey.de</a></td> </tr> <tr><td colspan=2>&nbsp;</td></tr> </table> </td></tr> </TABLE> </body> </html> `; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; if ((m = regex.exec(str)) !== null) { // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { console.log(`Found match, group ${groupIndex}: ${match}`); }); }

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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions