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

import re regex = re.compile(r"<td><a href=\"(http:\/\/adi.sunyconnect.suny.edu:4610\/F\/\?request=\d{6,6}&func=find-b&find_code=sys&local_base=adi01pub)\">(.*?)<b><br>(.*?) \/ (.*?)<\/b>", flags=re.IGNORECASE) test_str = ("<html>\n" "<head> \n" "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /> \n" "<meta http-equiv=\"Content-Language\" content=\"en-us\" /> \n" "<link rel=\"stylesheet\" type=\"text/css\" href=\"/app/exlibris/sny_scripts/new_items_list/new_items.css\" />\n" "<title>Adirondack Community College Library - New Titles List</title>\n" "<script type=\"text/javascript\" src=\"http://www.sunyconnect.suny.edu/gbs_cover_art/gbs_covers.js\"></script>\n" "</head>\n" "<body> \n" "<a name=\"top\"></a>\n" "<table width=\"90%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n" "<table id=\"Table_01\" width=\"100%\" height=\"48\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">\n" " <tr>\n" " <td>\n\n\n" "<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\" align=\"center\"> \n" " <tr bgcolor=\"#006500\"> \n" " <td class=\"topbar\" valign=\"bottom\" align=\"right\"> \n" " <a href=\"http://www.sunyacc.edu/go.php?page=academics/library.html\" class=\"blue\" target=new title=\"link to the library \n" "home page\"> \n" " <img src=\"http://adi.sunyconnect.suny.edu:4610/aleph/prod/adi/alephe/www_f_eng/icon/logo.gif\" border=\"0\" alt=\"Library \n" "Logo\" align=\"left\"></a> \n" " </td> \n" "<!-- <td class=\"topbar\" valign=\"middle\" align=\"center\"> \n" " </td> -->\n" " </tr> \n" " </table> \n\n" "<center><h2>\n" "Adirondack Community College Library<br>\n" "New Titles List\n" "</h2></center>\n\n" "<p>\n\n" "<center>\n" "<font color=\"#006500\"><b><i>\n" "This list shows the most recent additions to the library collection. Items are in call number order. \n" "<br>\n" "Click on the title to get to the full catalog record.</i></b></font>\n" "</center>\n\n" "</td></tr></table>\n\n" "<!-- Close table opened in header_2 -->\n" "</table>\n" "<table align=\"center\" cellspacing=\"20\">\n" "<tr><td>\n" "<a href=\"#A\">A - General Works, Encyclopedias, Dictionaries<br>\n" "<a href=\"#B\">B - Philosophy, Psychology, Religion<br>\n" "<a href=\"#C\">C - History of Civilization, Archeology, Chronologies,<br>\n" "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Genealogy, Biography<br>\n" "<a href=\"#D\">D - History: General and World History<br>\n" "<a href=\"#E\">E - History: America<br>\n" "<a href=\"#F\">F - History: America - Regional, State<br>\n" "<a href=\"#G\">G - Geography, Environmental Sciences, Anthropology,<br>\n" "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Folklore, Recreation, Sports<br>\n" "<a href=\"#H\">H - Social Sciences<br>\n" "<a href=\"#J\">J - Political Science<br>\n" "<a href=\"#K\">K - Law<br>\n" "</td><td>\n" "<a href=\"#L\">L - Education <br>\n" "<a href=\"#M\">M - Music, books about Music<br>\n" "<a href=\"#N\">N - Fine Arts<br>\n" "<a href=\"#P\">P - Language and Literature<br>\n" "<a href=\"#Q\">Q - Science<br>\n" "<a href=\"#R\">R - Medicine, Nursing, Pharmacology, Psychiatry<br>\n" "<a href=\"#S\">S - Agriculture<br>\n" "<a href=\"#T\">T - Technology, Engineering, Aeronautics,<br>\n" "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Photography, Handicrafts<br>\n" "<a href=\"#U\">U - Military Science<br>\n" "<a href=\"#V\">V - Naval Science<br>\n" "<a href=\"#Z\">Z - Library Science, Bibliography<br>\n" "</td></tr>\n" "</table>\n\n" "<table width=\"75%\" align=\"center\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"><tr><td>\n" "<h4>LC Call Number:</h4>\n" "<font color=\"#000000\" size=\"1\"><a href=\"http://www.loc.gov/catdir/cpso/lcco/lcco.html\" target=\"_new\">\n" "Guide to LC Classification</a> - (click for more information on the call letters for a subject)\n" "</font></p>\n\n" "[<b><a HREF=\"#A\">A</a></b>] [<b><a HREF=\"#B\">B</a></b>]\n" "[<b><a HREF=\"#C\">C</a></b>] [<b><a HREF=\"#D\">D</a></b>] [<b><a HREF=\"#E\">E</a></b>]\n" "[<b><a HREF=\"#F\">F</a></b>] [<b><a HREF=\"#G\">G</a></b>] [<b><a HREF=\"#H\">H</a></b>]\n" "[<b><a HREF=\"#J\">J</a></b>] [<b><a HREF=\"#K\">K</a></b>]\n" "[<b><a HREF=\"#L\">L</a></b>] [<b><a HREF=\"#M\">M</a></b>] [<b><a HREF=\"#N\">N</a></b>]\n" "[<b><a HREF=\"#P\">P</a></b>] [<b><a HREF=\"#Q\">Q</a></b>]\n" "[<b><a HREF=\"#R\">R</a></b>] [<b><a HREF=\"#S\">S</a></b>] [<b><a HREF=\"#T\">T</a></b>]\n" "[<b><a HREF=\"#U\">U</a></b>] [<b><a HREF=\"#V\">V</a></b>] [<b><a HREF=\"#Z\">Z</a></b>]\n" "<br>\n" "</td></tr></table>\n\n" "<table width=80%><tr><td>&nbsp;</td></tr><tr><td align=right>\n" "<font size=1>Last updated: Mon 01-25-2016</font>\n" "</td></tr></table>\n" "<table width=90% align=center border=0 cellpadding=0 cellspacing=0>\n" "<tr><td> <A NAME=\"A\"> </A><b><font size=+3>A</font></b></a></td><td>&nbsp; </td></tr>\n" "<tr><td> <A NAME=\"B\"> </A><b><font size=+3>B</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233654&func=find-b&find_code=sys&local_base=adi01pub\">BX1751.3 .C377 2015 Adirondack Community College Circulating<b><br>The Catholic Church / Michael Ruth, book editor.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"C\"> </A><b><font size=+3>C</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"D\"> </A><b><font size=+3>D</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233656&func=find-b&find_code=sys&local_base=adi01pub\">DK508.852 .U39 2016 Adirondack Community College Circulating<b><br>Ukraine / Michael Ruth, book editor.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"E\"> </A><b><font size=+3>E</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"F\"> </A><b><font size=+3>F</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"G\"> </A><b><font size=+3>G</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"H\"> </A><b><font size=+3>H</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233657&func=find-b&find_code=sys&local_base=adi01pub\">HC110.I5 I477 2016 Adirondack Community College Circulating<b><br>Income inequality / Noël Merino, Book Editor.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233652&func=find-b&find_code=sys&local_base=adi01pub\">HQ766 .B4794 2016 Adirondack Community College Circulating<b><br>Birth control / Jack Lasky, book editor.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233655&func=find-b&find_code=sys&local_base=adi01pub\">HV9471 .A49 2016 Adirondack Community College Circulating<b><br>America's prisons / Jack Lasky, book editor.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"J\"> </A><b><font size=+3>J</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"K\"> </A><b><font size=+3>K</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"L\"> </A><b><font size=+3>L</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"M\"> </A><b><font size=+3>M</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"N\"> </A><b><font size=+3>N</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"P\"> </A><b><font size=+3>P</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233650&func=find-b&find_code=sys&local_base=adi01pub\">PC2129.E5 R59 2009 Adirondack Community College Circulating<b><br>Easy French step-by-step : master high-frequency grammar for French proficiency--fast! / Myrna Bell</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233648&func=find-b&find_code=sys&local_base=adi01pub\">PF3271 .H39 2011 Adirondack Community College Circulating<b><br>German verb drills / Astrid Henschel.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233658&func=find-b&find_code=sys&local_base=adi01pub\">PN1997.2 .I54 2015 Adirondack Community College DVD<b><br>Infinitely polar bear / a Sony Pictures Classics release ; Paper Street Films and Park Pictures pres</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233649&func=find-b&find_code=sys&local_base=adi01pub\">PR830.W6 P45 2014 Adirondack Community College Circulating<b><br>Women's fiction : from 1945 to today / Deborah Philips.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"Q\"> </A><b><font size=+3>Q</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"R\"> </A><b><font size=+3>R</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233647&func=find-b&find_code=sys&local_base=adi01pub\">RB115 .B823 2016 Adirondack Community College Reference<b><br>2016 ICD-10-CM for physicians professional edition / Carol J. Buck.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"S\"> </A><b><font size=+3>S</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233651&func=find-b&find_code=sys&local_base=adi01pub\">S596.7 .V57 2015 Adirondack Community College Circulating<b><br>Visual soil evaluation : realizing potential crop production with minimum environmental impact / edi</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"T\"> </A><b><font size=+3>T</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td>&nbsp;</td><td><a href=\"http://adi.sunyconnect.suny.edu:4610/F/?request=233653&func=find-b&find_code=sys&local_base=adi01pub\">TK5105.8855 .I58 2016 Adirondack Community College Circulating<b><br>The Internet / Jack Lasky, Book Editor.</b></a></td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"U\"> </A><b><font size=+3>U</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"V\"> </A><b><font size=+3>V</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "<tr><td> <A NAME=\"Z\"> </A><b><font size=+3>Z</font></b></td><td><a HREF=\"#top\">Back to top</a> </td></tr><tr><td>&nbsp;</td></tr>\n" "</table>\n" "</body>\n" "</html>\n") matches = regex.finditer(test_str) for match_num, match in enumerate(matches, start=1): print(f"Match {match_num} 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