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

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"<a\s+.*?href=""https:\/\/code.amazon.com\/packages\/AWSBrewPricingPlcConsole\/releases\/(\d+)\.(\d+)\.(\d+)\.(\d+)"; string input = @" <!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> "; RegexOptions options = RegexOptions.Multiline; foreach (Match m in Regex.Matches(input, pattern, options)) { Console.WriteLine("'{0}' found at index {1}.", m.Value, m.Index); } } }

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 C#, please visit: https://msdn.microsoft.com/en-us/library/system.text.regularexpressions.regex(v=vs.110).aspx