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
No Match

/
/
gm

Test String

Code Generator

Generated Code

const regex = /<a\s+.*?href="https:\/\/code.amazon.com\/packages\/AWSBrewPricingPlcConsole\/releases\/(\d+)\.(\d+)\.(\d+)\.(\d+)/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('<a\\s+.*?href="https:\\\/\\\/code.amazon.com\\\/packages\\\/AWSBrewPricingPlcConsole\\\/releases\\\/(\\d+)\\.(\\d+)\\.(\\d+)\\.(\\d+)', 'gm') const str = ` <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <title> AWSBrewPricingPlcConsole - Releases - Brazil Directory </title> <!-- EXPERIMENTAL: Subject to change, don't rely on these --> <meta name="environment" content="DevCentralWebsite"> <meta name="stage" content="Prod"> <!-- /EXPERIMENTAL --> <link rel="stylesheet" type="text/css" href="https://internal-cdn.amazon.com/dtux.amazon.com/stylesheets/dtux-style.css"> <link href="https://internal-cdn.amazon.com/devcentral.amazon.com/style/helptips.css" rel="stylesheet" type="text/css"> <link rel="icon" href="https://internal-cdn.amazon.com/devcentral.amazon.com/images/brazil.ico" type="image/x-icon"> <link rel="shortcut icon" href="https://internal-cdn.amazon.com/devcentral.amazon.com/images/brazil.ico" type="image/x-icon"> <link rel="stylesheet" type="text/css" href="https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/plugins/autocomplete/1.1/jquery.autocomplete.min.css"> <link href="https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/stylesheet.min.css?size=24097" rel="stylesheet" type="text/css"> <link rel="stylesheet" type="text/css" href="https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/visualizer/stylesheets/visualizer.min.css?size=1088" > <link rel="stylesheet" type="text/css" href="https://internal-cdn.amazon.com/is-it-down.amazon.com/stylesheets/stripe.css"> <script type="text/javascript" src="https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script type="text/javascript" src="https://internal-cdn.amazon.com/dtux.amazon.com/javascripts/cache/dtux-style.js"></script> <script type="text/javascript" src="https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/plugins/autocomplete/1.1/jquery.autocomplete.min.js"></script> <script type="text/javascript" src="https://internal-cdn.amazon.com/btk.amazon.com/ajax/libs/jquery/plugins/tablesorter/2.0.3/jquery.tablesorter.min.js"></script> <script type="text/javascript" src="https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/script.min.js?size=2302"> </script> <script type="text/javascript"> IS_PROD = true; REMOTE_USER = 'vladyang'; </script> </head> <body> <div id="content"> <div class="inner-container"> <div class="indexHeader"> <span class='titleBarTitle'> <a href="/">devcentral</a> &gt; <a href="https://devcentral.amazon.com/ac/brazil/directory/">brazil directory</a> &gt; <a href="https://devcentral.amazon.com/ac/brazil/directory/packages/by-owner">packages</a> &gt; <a href="https://devcentral.amazon.com/ac/brazil/directory/package/overview/AWSBrewPricingPlcConsole">AWSBrewPricingPlcConsole</a> &gt; <a href="https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.3">1.3</a> &gt; release notes </span> </div> <div class='titleBarHelper'> <div id="searchBoxes"> <form action="https://devcentral.amazon.com/ac/brazil/directory/packages/search" id="findPackageForm"> <div> Search Packages: <input type="text" id="findPackage" name="q"> </div> </form> <form action="https://devcentral.amazon.com/ac/brazil/directory/version-sets/search" id="findVersionSetForm"> <div> Search Version Sets: <input type="text" id="findVersionSet" class="versionSetInput" name="q" value="live"> </div> </form> </div> </div> <h1>Package: AWSBrewPricingPlcConsole</h1> <!-- Timing for addPackageToRoute (in seconds): { 'getBranchByPackageAndName' => '0.0113730430603027', 'getPackageSynopsisByName' => '0.0839250087738037' } --> <div id="viewInLinks"> View in <a href="/brazil/go/src-control?pkg=AWSBrewPricingPlcConsole">Code Browser</a> | <a href="https://omni-grok.amazon.com/s?path=/AWSBrewPricingPlcConsole&indexName=GitFarm_6">OmniGrok</a> | <a href="https://apollo.amazon.com/package.html?packageName=AWSBrewPricingPlcConsole&amp;showEnvironmentUsage=1"> Apollo </a> </div> <div id="headerWarning"> </div> <div id="flash"> </div> <div class="tabs has-subnav"> <ul> <li class="tab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/overview/AWSBrewPricingPlcConsole">Overview</a></li> <li class="tab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/branches/AWSBrewPricingPlcConsole">Branches</a></li> <li class="tab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/releases/AWSBrewPricingPlcConsole">All Releases</a></li> <li class="tab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/sourceGuidance/AWSBrewPricingPlcConsole">Source Guidance</a></li> <li class="tab active"><a class="active vendor-guidance-NONE" href="https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.3">1.3 </a></li> <li class="tab "><a class=" vendor-guidance-NONE" href="https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.0">1.0 </a></li> </ul> </div> <div class="subtabs"> <ul> <li class="subtab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/majorVersionSummary/AWSBrewPricingPlcConsole?majorVersion=1.3">Summary</a></li> <li class="subtab active"><a class="active " href="https://devcentral.amazon.com/ac/brazil/directory/package/notes/AWSBrewPricingPlcConsole?majorVersion=1.3">Releases</a></li> <li class="subtab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/deps/AWSBrewPricingPlcConsole?direction=down&majorVersion=1.3&graphType=runtime_dependencies-resolved">Dependencies</a></li> <li class="subtab "><a class=" " href="https://devcentral.amazon.com/ac/brazil/directory/package/deps/AWSBrewPricingPlcConsole?direction=up&majorVersion=1.3">Consumers</a></li> </ul> </div> <div class='underNav'> <div class="subNavHolder"> <div id="actions"> <h3>Package Actions</h3> <form method="get" action="/brazil/packages/versionDiff/"> <div> <input type="hidden" name="packageName" value="AWSBrewPricingPlcConsole"> <button type="submit"> Diff <b>Versions</b> </button> </div> </form> </div> <h2>Releases</h2> <div class="releaseNotes"> <table class="releaseNotes"> <tr> <td class="version"> <a name="1.3.3.0"></a><a href="https://code.amazon.com/packages/AWSBrewPricingPlcConsole/releases/1.3.3.0"><b>1.3</b>.3.0</a> </td> <td class="nowrap">Tue Jan 8 01:39:08 2019</td> <td> AWSBrewPricingPlcConsole/<a href="/brazil/go/src-control?branch=mainline&pkg=AWSBrewPricingPlcConsole">mainline</a>@<a href="/brazil/go/src-control?branch=mainline&cln=6a10a7b2e3108941009efcfaef877b0df6a4063a&pkg=AWSBrewPricingPlcConsole">6a10a7b2e3108941009efcfaef877b0df6a4063a</a>&nbsp;(GitFarm) </td> <td> <a href="https://devcentral.amazon.com/ac/brazil/directory/version-set/overview/AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole">AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole</a> </td> <td style="width: 50%"> Built in <a href="https://build.amazon.com/2058367784">request 2058367784</a> </td> </tr> <tr> <td colspan="5" class="text"> <div style="overflow: auto"> Requester: vladyang<br> [Change 6a10a7b2e3108941009efcfaef877b0df6a4063a by vladyang] adding version info<br> <br> </div> </td> </tr> <tr> <td class="version"> <a name="1.3.2.0"></a><a href="https://code.amazon.com/packages/AWSBrewPricingPlcConsole/releases/1.3.2.0"><b>1.3</b>.2.0</a> </td> <td class="nowrap">Tue Jan 8 01:20:29 2019</td> <td> AWSBrewPricingPlcConsole/<a href="/brazil/go/src-control?branch=mainline&pkg=AWSBrewPricingPlcConsole">mainline</a>@<a href="/brazil/go/src-control?branch=mainline&cln=3d728050bff78d98870ca70662e62bebbfa91f48&pkg=AWSBrewPricingPlcConsole">3d728050bff78d98870ca70662e62bebbfa91f48</a>&nbsp;(GitFarm) </td> <td> <a href="https://devcentral.amazon.com/ac/brazil/directory/version-set/overview/AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole">AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole</a> </td> <td style="width: 50%"> Built in <a href="https://build.amazon.com/2058362893">request 2058362893</a> </td> </tr> <tr> <td colspan="5" class="text"> <div style="overflow: auto"> Requester: vladyang<br> [3d72805 by vladyang] Initial Test Set </div> </td> </tr> <tr> <td class="version"> <a name="1.3.1.0"></a><a href="https://code.amazon.com/packages/AWSBrewPricingPlcConsole/releases/1.3.1.0"><b>1.3</b>.1.0</a> </td> <td class="nowrap">Tue Jan 8 00:50:19 2019</td> <td> AWSBrewPricingPlcConsole/<a href="/brazil/go/src-control?branch=refactorings&pkg=AWSBrewPricingPlcConsole">refactorings</a>@<a href="/brazil/go/src-control?branch=refactorings&cln=afcb73f4968c4fc6baf6beb85f8414ad1a2ab603&pkg=AWSBrewPricingPlcConsole">afcb73f4968c4fc6baf6beb85f8414ad1a2ab603</a>&nbsp;(GitFarm) </td> <td> <a href="https://devcentral.amazon.com/ac/brazil/directory/version-set/overview/AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole">AWSBrewPricingPlcTools/AWSBrewPricingPlcConsole</a> </td> <td style="width: 50%"> Built in <a href="https://build.amazon.com/2058354122">request 2058354122</a> </td> </tr> <tr> <td colspan="5" class="text"> <div style="overflow: auto"> Requester: vladyang<br> [afcb73f by vladyang] Fixing package versioning </div> </td> </tr> </table> </div> <a name="end"></a> <script type="text/javascript" src="https://internal-cdn.amazon.com/devcentral.amazon.com/brazil/directory/js/package.min.js?size=1292"></script> <div style="clear:both"></div> </div> </div> </div> </div> <div id='footer'> <div class='column'> <h3>Packages</h3> <ul> <li><a href="https://octane.amazon.com/package">Create Package</a></li> <li><a href="/brazil/packages">Third Party Packages</a></li> <li><a href="https://code.amazon.com/packages/find_by_team_for_user">Packages By Owner</a></li> <li><a href="/ac/brazil/directory/packages/prune-list">Pruned Packages</a></li> </ul> </div> <div class='column'> <h3>Version Sets</h3> <ul> <li><a href="https://code.amazon.com/version-sets/new">Create</a></li> <li><a href="https://code.amazon.com/version-sets/">Browse</a></li> </ul> </div> <div class='business_card'> <h3>Need help?</h3> <ul> <li><a href="https://w.amazon.com/index.php/BuilderTools/Product/Brazil_Package_Directory">Package Directory Documentation</a></li> <li><a href="https://i.amazon.com/issues/create?assignedFolder=27de5d2d-8357-4fe4-9344-7f9d95d94d6b&descriptionContentType=text%2Famz-markdown-sim&extensions%5Btt%5D%5Bimpact%5D=4">Submit an Issue (problems or suggestions)</a></li> <li><a href="https://w.amazon.com/index.php/BuilderTools/OfficeHours">Office Hours</a></li> </ul> <div class="browser_support"> <a href="https://w.amazon.com/?BuilderTools/Browser_Support_Policy">Browser Support Policy</a> </div> </div> </div> <script type="text/javascript" src="https://internal-cdn.amazon.com/devcentral.amazon.com/js/display.min.js?size=582"></script> <script type="text/javascript" src="https://internal-cdn.amazon.com/is-it-down.amazon.com/javascripts/stripe.min.js"></script> <script type="text/javascript"> // "Is It Down?" Stripe for Package Builder isItDownStripe("brazil", 2, 1); </script> </body> </html> `; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // 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