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

// include the latest version of the regex crate in your Cargo.toml extern crate regex; use regex::Regex; fn main() { let regex = Regex::new(r#"(?m)<a\s+.*?href="https:\/\/code.amazon.com\/packages\/AWSBrewPricingPlcConsole\/releases\/(\d+)\.(\d+)\.(\d+)\.(\d+)"#).unwrap(); let string = " <!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> "; // result will be an iterator over tuples containing the start and end indices for each match in the string let result = regex.captures_iter(string); for mat in result { println!("{:?}", mat); } }

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 Rust, please visit: https://docs.rs/regex/latest/regex/