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

Substitution
Processing...

Code Generator

Generated Code

use strict; my $str = ' <li class="Testclass" id="yui-gen13" groupindex="0" index="1"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#autoCompMenu">Component 1</a> <div id="autoCompMenu" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd"> <ul> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_salesrep/maintAutoCompleteCodes.html?table=c_customer_visits&amp;field=business_type&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Show 1</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_salesrep/maintAutoCompleteCodes.html?table=c_customer_visits&amp;field=phone_2&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Show 2</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_salesrep/maintAutoCompleteCodes.html?table=c_customer_visits&amp;field=current_provider&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Show 3</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_salesrep/maintAutoCompleteCodes.html?table=c_customer_visits&amp;field=purpose_of_visit&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Show 4</a> </li> < <li class="Testclass" id="yui-gen17" groupindex="0" index="5"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#Component">Component2</a> <div id="hazardous" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd"> <ul> <l <li class="Testclass" id="yui-gen18" groupindex="0" index="6"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#ImportItem">Import Data</a> <div id="ImportItem" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd" style=""> <li class="yuimenuitem" id="yui-gen36" groupindex="0" index="8"> <a class="yuimenuitemlabel" href="../we_general/importRouteStops.html?AddMode=NEW&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 1</a> </li> <li class="yuimenuitem" id="yui-gen37" groupindex="0" index="9"> <a class="yuimenuitemlabel" href="../we_general/importRoutes-1.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 2</a> </li> <li class="yuimenuitem" id="yui-gen38" groupindex="0" index="10"> <a class="yuimenuitemlabel" href="../we_import/importRunsheet-1.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 3</a> </li> <li class="yuimenuitem" id="yui-gen39" groupindex="0" index="11"> <a class="yuimenuitemlabel" href="../we_import/importSchedules-1.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 4</a> </li> <li class="yuimenuitem" id="yui-gen40" groupindex="0" index="12"> <a class="yuimenuitemlabel" href="../we_import/importServicesNew-1.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 5</a> </li> <li class="yuimenuitem" id="yui-gen41" groupindex="0" index="13"> <a class="yuimenuitemlabel" href="../we_import/importStreetBins-1.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 6</a> </li> <li class="yuimenuitem" id="yui-gen42" groupindex="0" index="14"> <a class="yuimenuitemlabel" href="../we_general/maintRollback.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Frame 7</a> </li> </ul> </div> <div class="yui-menu-shadow" style="height: 303px;"></div></div> </li> <li class="Testclass" id="yui-gen19" groupindex="0" index="7"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#tipItem">Other Sites</a> <div id="tipItem" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd" style=""> <ul class="first-of-type" style=""> <li class="yuimenuitem first-of-type" id="yui-gen25" groupindex="0" index="0"> <a class="yuimenuitemlabel" href="../we_general/maintTips.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Menu test</a> </li> <li class="yuimenuitem" id="yui-gen26" groupindex="0" index="1"> <a class="yuimenuitemlabel" href="../we_general/importTipFees.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Menu test 2</a> </li> <li class="yuimenuitem" id="yui-gen27" groupindex="0" index="2"> <a class="yuimenuitemlabel" href="../we_landfill/maintSites.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Menu test 3</a> </li> </ul> </div> <div class="yui-menu-shadow" style="height: 67px;"></div></div> </li> <li class="Testclass" id="yui-gen20" groupindex="0" index="8"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#Menu">Menu test 4</a> <div id="PDFTemplatesMenu" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd"> <ul> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="#SheetMenu">Run Setup</a> <div id="RunSheetMenu" class="yuimenu"> <div class="bd"> <ul> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintRSCoverSetupBulk.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Bulk Runsheet Cover</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintRSLayout.html?RSOrientation=L&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Landscape Runsheet Layout setup</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintRSLayout.html?RSOrientation=P&amp;OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Portrait Runsheet Layout Setup</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintRSCoverSetup.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Regular run sheet cover </a> </li> </ul> </div> </div> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../PDF/maintPDFTemplates.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Upload Templates</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="#PDFTempFields">View Template Fields</a> <div id="PDFTempFields" class="yuimenu"> <div class="bd"> <ul> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../PDF/dispBookingMergeFields.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Booking Documents</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../PDF/dispCustMergeFields.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Customer Documents</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../PDF/dispProspectMergeFields.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Prospect Documents</a> </li> </ul> </div> </div> </li> </ul> </div> </div> </li> <li class="yuimenuitem" id="yui-gen21" groupindex="0" index="9"> <a class="yuimenuitemlabel" href="../we_general/maintPricing.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Pricing</a> </li> <li class="yuimenuitem" id="yui-gen22" groupindex="0" index="10"> <a class="yuimenuitemlabel" href="../calendaring/setupGoogleCalendar.p?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Setup Google Calendar</a> </li> <li class="Testclass" id="yui-gen23" groupindex="0" index="11"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#SubbMenu">Sub Contractors</a> <div id="SubbMenu" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd"> <ul> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_subbies/searchSubbCosts.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Review</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_subbies/maintSubbRate.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" "="" target="InternalFrame">Rates</a> </li> </ul> </div> </div> </li> <li class="Testclass" id="yui-gen24" groupindex="0" index="12"> <a class="yuimenuitemlabel yuimenuitemlabel-hassubmenu" href="#codesMenu">System Tables</a> <div id="codesMenu" class="yuimenu yui-module yui-overlay yui-overlay-hidden" style="z-index: 1; position: absolute; visibility: hidden;"> <div class="bd"> <ul> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintAudit.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Menu 1</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintCustomerClass.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Menu 2</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintEftProvider.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Menu 3</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_dispatch/maintMDTCodes.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">MDT Codes</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_dispatch/maintMDTConfigVersion.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">MDT Configurations</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintNoteTypes.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 2</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintOrganizations.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 3</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintPayMethod.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 4</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintRegWasteCode.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 5</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintServCode.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 6</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintServType.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 7</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../we_general/maintTermsCode.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 8</a> </li> <li class="yuimenuitem"> <a class="yuimenuitemlabel" href="../general/test.html?OwnerID=35&amp;CompanyID=test&amp;Username=usr1&amp;Password=xxxxxxx;ProductID=&amp;ProductName=&amp;LoginID=357" target="InternalFrame">Data 9</a> </li> </ul> </div> </div> </li> </ul>'; my $regex = qr/href=\"\#Component\"\>([a-zA-Z]*)/mp; my $subst = '($1)'; my $result = $str =~ s/$regex/$subst/rg; print "The result of the substitution is' $result\n";

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 Perl, please visit: http://perldoc.perl.org/perlre.html