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]
  • 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

import re regex = re.compile(r"<body[^>]+?>\s+(?<table>[\w\W]+)<\/body>", flags=re.IGNORECASE) test_str = ("<html>\n" "<head>\n" "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n" " <META NAME=\"Identifier-URL\" CONTENT=\"http://www.hockey.de/\">\n" " <META NAME=\"keywords\" CONTENT=\"Hockey\">\n" " <META NAME=\"copyright\" CONTENT=\"&copy; hokey.de GbR\">\n" "<title>hockey.de: hoc@key Ergebnisdienst</title>\n" "<link REL=\"STYLESHEET\" HREF=\"/VVI-web/Include/css.asp?lokal=WHV\" type=\"text/css\">\n" "<script src=\"/VVI-web/Include/DE-java.js\" type=\"text/javascript\"></script>\n" "</head>\n\n" "<body bgcolor=\"#FFFFFF\" topmargin=0 leftmargin=0 marginwidth=0 marginheight=0>\n" "<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=806>\n\n" "<!== TABELLE - 2 SPALTEN ================================================>\n" "<tr><td><table border=0 cellspacing=0 cellpadding=0 width=806>\n\n" "<!-- SPALTEN BREITE FIXIEREN -------------------------------------------->\n" "<tr>\n" "<td><img SRC=\"/VVI-web/Include/dummy.gif\" height=1 width=600></td>\n" "<td><img SRC=\"/VVI-web/Include/dummy.gif\" height=1 width=6></td>\n" "<td><img SRC=\"/VVI-web/Include/dummy.gif\" height=1 width=200></td>\n" "</tr>\n\n" "<!-- HAUPT SPALTE ------------------------------------------------------->\n" "<tr><td valign=TOP><table border=0 cellspacing=0 cellpadding=0 width=600>\n" "<!-- Seiten Titel -->\n" " <tr height=62><td class=bghell>\n" " <p style=\"padding-left:4px;margin-bottom:16px\"><b>Wer spielt wo?</b></p>\n" " <p class=TTitel style=\"text-align:CENTER\">hoc@key Ergebnisdienst</p>\n" " <tr><td>\n\n\n" "<!-- Club, Men� -->\n" "<tr><td align=CENTER><p class=Ueber>VfB H�ls</p></td></tr>\n" "<tr><td align=CENTER><b>|\n\n" " <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> |\n" " \n" " <b class=rot>Aktuelle Woche</b> |\n" " \n" " <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> |\n" " \n" " <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> |\n" " \n" "</b></td></tr>\n" "<tr><td><img src=\"/VVI-web/include/dummy.gif\" width=1 height=15></td></tr>\n\n" "<!-- Spielplan -------------------------------------------------------->\n\n" " \n" "<tr><td><table border=0 width=600 cellspacing=0 cellpadding=0>\n" " <tr>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=180 height=1></td>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=50 height=1></td>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=120 height=1></td>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=15 height=1></td>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=130 height=1></td>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=40 height=1></td>\n" " <td><img src=\"/VVI-web/include/dummy.gif\" width=65 height=1></td>\n" " </tr>\n\n" " <tr height=25>\n" " <td valign=BOTTOM colspan=5><b class=rot>Samstag, 2. M�rz 2024</b></td>\n" " </tr>\n" " \n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>12:30</td>\n" " <td valign=TOP class=klein>HC GMH�tte</td>\n" " <td valign=TOP class=klein>-</td>\n" " <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>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>02</td>\n" " </tr>\n\n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>14:00</td>\n" " <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>\n" " <td valign=TOP class=klein>-</td>\n" " <td valign=TOP class=klein>Buerscher HC</td>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>05</td>\n" " </tr>\n\n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>15:00</td>\n" " <td valign=TOP class=klein>Bielefelder TG</td>\n" " <td valign=TOP class=klein>-</td>\n" " <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>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>07</td>\n" " </tr>\n\n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>16:00</td>\n" " <td valign=TOP class=klein>HSC 05 Osnabr�ck</td>\n" " <td valign=TOP class=klein>-</td>\n" " <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>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>09</td>\n" " </tr>\n\n" " <tr height=25>\n" " <td valign=BOTTOM colspan=5><b class=rot>Sonntag, 3. M�rz 2024</b></td>\n" " </tr>\n" " \n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>10:00</td>\n" " <td valign=TOP class=klein>Club Raffelberg 4</td>\n" " <td valign=TOP class=klein>-</td>\n" " <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>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>29</td>\n" " </tr>\n\n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>12:00</td>\n" " <td valign=TOP class=klein>THC M�nster 3</td>\n" " <td valign=TOP class=klein>-</td>\n" " <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>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>29</td>\n" " </tr>\n\n" " <tr>\n" " <td valign=TOP class=klein></td>\n" " <td valign=TOP class=klein>16:00</td>\n" " <td valign=TOP class=klein>THC M�nster 2</td>\n" " <td valign=TOP class=klein>-</td>\n" " <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>\n" " <td valign=TOP class=klein>_:_</td>\n" " <td valign=TOP class=klein align=RIGHT>29</td>\n" " </tr>\n\n" "</table></td></tr>\n" " \n" "<!--------------------------------------------------------------------->\n\n\n\n" "</table></td>\n\n" "<!-- ZWISCHENRAUM ------------------------------------------------------->\n" "<td>&nbsp;</td>\n\n" "<!-- RECHTE SPALTE ------------------------------------------------------>\n" "<td valign=TOP><table border=0 cellspacing=0 cellpadding=0 width=200>\n" "<!-- Logo -->\n" " <tr><td><table border=0 cellspacing=0 cellpadding=0 width=200>\n" " <tr height=62>\n" " <td align=LEFT><img src=\"/VVI-web/Ergebnisdienst/Bilder/HED-Admin.gif\" width=64 height=62></td>\n" " <td align=CENTER><img src=\"/VVI-web/Ergebnisdienst/Bilder/HED-Ergebnis.gif\" width=64 height=62></td>\n" " <td align=RIGHT><img src=\"/VVI-web/Ergebnisdienst/Bilder/HED-Spielplan.gif\" width=64 height=62></td>\n" " </tr>\n" " </table></td></tr>\n" " <tr><td><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=6></td></tr>\n\n" "<!-- Men� -->\n" " <tr><td class=Oberdunkel>Men�</td></tr>\n" " <tr><td><table border=0 cellspacing=0 cellpadding=4 width=200>\n" " <tr><td class=bgdunkel>\n" " <a href=\"/VVI-web/Ergebnisdienst/willkommen.asp?lokal=WHV&bereich=WHV\"><b>&raquo; Info zum ...</b></a><br>\n" " <b class=rot>&raquo; Wer spielt wo?</b><br>\n" " <a href=\"/VVI-web/Ergebnisdienst/archiv.asp?lokal=WHV&bereich=WHV\"><b>&raquo; Saison Archiv</b></a><br>\n" " <a href=\"/VVI-web/Ergebnisdienst/schnittstellen.asp?lokal=WHV&bereich=WHV\"><b>&raquo; Schnittstellen</b></a><br>\n" " </td></tr>\n" " </table></td></tr>\n" " <tr><td><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=6></td></tr>\n\n" "<!-- Kontakt -->\n" " <tr><td class=Oberdunkel>Kontakt</td></tr>\n" " <tr><td><table border=0 cellspacing=0 cellpadding=4 width=200>\n" " <tr height=40><td class=bgdunkel>\n" " <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>\n" " </td></tr>\n" " </table></td></tr>\n" " <tr><td><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=6></td></tr>\n\n" "<!-- Apps f�r den Ergebnisdienst -->\n" " <tr><td>\n" "<table border=0 cellspacing=0 cellpadding=0 width=200>\n" " <tr><td class=OberDunkel>Apps f�r den Ergebnisdienst</td></tr>\n" " <tr><td bgcolor=#FFFFFF><img src=\"/VVI-web/Include/dummy.gif\" width=1 height=4></td></tr>\n" " <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>\n" "</table>\n" " </td></tr>\n\n" "</table></td></tr>\n\n" "<!-- Fuss -->\n" "<tr><td colspan=3>\n" " <table border=0 cellspacing=0 cellpadding=0 width=806>\n" " <tr><td colspan=2 style=\"font-size:12px\">&nbsp;</td></tr>\n" " <tr><td colspan=2><hr class=schwarz></td></tr>\n\n" " <tr height=15>\n" " <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>\n" " <td align=RIGHT style=\"font-size:11px; color:#666666;\">&copy; 2024 &#149; <a href=\"/VVI-web/Impressum.asp?lokal=WHV\">hockey.de</a></td>\n" " </tr>\n" " <tr><td colspan=2>&nbsp;</td></tr>\n" "</table>\n\n" "</td></tr>\n\n" "</TABLE>\n" "</body>\n" "</html>\n\n") match = regex.search(test_str) if match: print(f"Match was found at {match.start()}-{match.end()}: {match.group()}") for group_num, group in enumerate(match.groups(), start=1): print(f"Group {group_num} found at {match.start(group_num)}-{match.end(group_num)}: {group}")

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 Python, please visit: https://docs.python.org/3/library/re.html