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

/
/
g

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#"<meta\s*name="(.*)".*content="(.*)"\s*\/>"#).unwrap(); let string = " <!DOCTYPE html> <html lang=\"en\"> <head> <meta name=\"geo.placename\" content=\"11-12 BAYPORT PL, QUEENS, NY\" /> <meta name=\"geo.position\" content=\"40.6046019;-73.7494738\" /> <meta name=\"geo.region\" content=\"US;NY\" /> <meta name=\"ICBM\" content=\"40.6046019, -73.7494738\" /> <style type='text/css'> h2.title { font-size: 130%; background: #eee; margin:0.2em 0; padding:0.5em; border: 3px solid #dcdcdc; } .crime-info { font-size: 130%; background: #eee; margin:0.2em 0; padding:0.5em; border: 2px solid #dcdcdc; } .alerts ul { padding-left: 1em; clear: both; margin: 20px 0; } .alerts li { float: left; width: 45%; margin: 0; padding: 0 0 0 0.4em;; } div.google_ads_sidebar { margin-bottom: 10px; width: 210px !important; text-align: center; padding: 5px !important; } </style> <script type='text/javascript'> //<![CDATA[ try { if (screen.width <= 420) { window.location = \"//spotcrime.com/mobile/crime/?95215796-5c02086a20e817cf1bb5a978a2c10720\"; } } catch(err) { } //]]> </script> <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\" /> <meta name=\"viewport\" content='width=device-width,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0,user-scalable=false'/> <title>Theft - 11-12 BAYPORT PL, QUEENS, NY</title> <meta name=\"description\" content=\"Theft - 11-12 BAYPORT PL, QUEENS, NY. Grand Larceny Auto. Of Auto\"/> <meta name=\"keywords\" content=\"Theft,11-12 BAYPORT PL, QUEENS, NY,Queens, crime map, crime in, crimes, neighborhood crime, crime report, neighborhood crime watch, crime analysis, crime analytics, crime analysis tools, home security\"/> <!-- meta name=\"verify-v1\" content=\"3e644NZNzIcRb+ZulOwM2nkI/b49EltodgfuV4+Vxk4=\"--> <meta name=\"verify-v1\" content=\"KDp+ufgA8DHe89GWmW1UZHRb1nXg9qu6YnQFofzYwgA=\" /> <link rel=\"shortcut icon\" href=\"//s3.amazonaws.com/s3.spotcrime.com/media/style/favicon.ico\" type=\"image/x-icon\" /> <link rel=\"icon\" href=\"//s3.amazonaws.com/s3.spotcrime.com/media/style/favicon.ico\" type=\"image/x-icon\" /> <!-- Latest compiled and minified CSS --> <link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css\"> <!-- Optional theme --> <!-- link rel=\"stylesheet\" href=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css\" --> <!-- Custom styles for this template --> <link href=\"//s3.amazonaws.com/m.spotcrime.com/mobile/media/v1/css/mobile.css\" rel=\"stylesheet\"> <link href=\"//s3.amazonaws.com/s3.spotcrime.com/desktop/media/v1/desktop.css\" rel=\"stylesheet\"> <style type=\"text/css\"> /* overwrite mobile css */ .main-content { text-align: left; } .main-content-column { margin-top: 2em; } </style> <script async src=\"//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js\"></script> </head> <body> <nav class=\"navbar navbar-inverse navbar-fixed-top spotcrime-header\"> <div class=\"container\"> <div class=\"navbar-header\"> <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#navbar\" aria-expanded=\"false\" aria-controls=\"navbar\"> <span class=\"sr-only\">Toggle navigation</span> <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span> </button> <a class=\"navbar-brand spotcrime-navbar-brand\" href=\"/\">Spotcrime</a> </div> <div id=\"navbar\" class=\"collapse navbar-collapse\"> <ul class=\"nav navbar-nav navbar-spotcrime\"> <li class=\"dropdown\"> <a href=\"#\" class=\"dropdown-toggle\" data-toggle=\"dropdown\" role=\"button\" aria-expanded=\"false\">Browse By State <span class=\"caret\"></span></a> <ul id=\"states-list-menu\" class=\"dropdown-menu\" role=\"menu\" style=\"z-index: 1000;\"> <li><a href=\"/al\" >Alabama</a></li> <li><a href=\"/ak\" >Alaska</a></li> <li><a href=\"/az\" >Arizona</a></li> <li><a href=\"/ar\" >Arkansas</a></li> <li><a href=\"/ca\" >California</a></li> <li><a href=\"/co\" >Colorado</a></li> <li><a href=\"/ct\" >Connecticut</a></li> <li><a href=\"/de\" >Delaware</a></li> <li><a href=\"/dc\" >District of Columbia</a></li> <li><a href=\"/fl\" >Florida</a></li> <li><a href=\"/ga\" >Georgia</a></li> <li><a href=\"/hi\" >Hawaii</a></li> <li><a href=\"/id\" >Idaho</a></li> <li><a href=\"/il\" >Illinois</a></li> <li><a href=\"/in\" >Indiana</a></li> <li><a href=\"/ia\" >Iowa</a></li> <li><a href=\"/ks\" >Kansas</a></li> <li><a href=\"/ky\" >Kentucky</a></li> <li><a href=\"/la\" >Louisiana</a></li> <li><a href=\"/me\" >Maine</a></li> <li><a href=\"/md\" >Maryland</a></li> <li><a href=\"/ma\" >Massachusetts</a></li> <li><a href=\"/mi\" >Michigan</a></li> <li><a href=\"/mn\" >Minnesota</a></li> <li><a href=\"/ms\" >Mississippi</a></li> <li><a href=\"/mo\" >Missouri</a></li> <li><a href=\"/mt\" >Montana</a></li> <li><a href=\"/ne\" >Nebraska</a></li> <li><a href=\"/nv\" >Nevada</a></li> <li><a href=\"/nh\" >New Hampshire</a></li> <li><a href=\"/nj\" >New Jersey</a></li> <li><a href=\"/nm\" >New Mexico</a></li> <li><a href=\"/ny\" >New York</a></li> <li><a href=\"/nc\" >North Carolina</a></li> <li><a href=\"/nd\" >North Dakota</a></li> <li><a href=\"/oh\" >Ohio</a></li> <li><a href=\"/ok\" >Oklahoma</a></li> <li><a href=\"/or\" >Oregon</a></li> <li><a href=\"/pa\" >Pennsylvania</a></li> <li><a href=\"/ri\" >Rhode Island</a></li> <li><a href=\"/sc\" >South Carolina</a></li> <li><a href=\"/sd\" >South Dakota</a></li> <li><a href=\"/tn\" >Tennessee</a></li> <li><a href=\"/tx\" >Texas</a></li> <li><a href=\"/ut\" >Utah</a></li> <li><a href=\"/vt\" >Vermont</a></li> <li><a href=\"/vi\" >Virgin Islands</a></li> <li><a href=\"/va\" >Virginia</a></li> <li><a href=\"/wa\" >Washington</a></li> <li><a href=\"/wv\" >West Virginia</a></li> <li><a href=\"/wi\" >Wisconsin</a></li> <li><a href=\"/wy\" >Wyoming</a></li> <li><a href=\"/pr\" >Puerto Rico</a></li> <li><a href=\"/vi\" >Virgin Islands</a></li> </ul> </li> <li><a href=\"http://crimetip.us/\" target=\"_blank\">Submit a Crime Tip</a></li> <li class=\"auth-hidden\"><a href=\"/login.php\">Sign In</a></li> <li class=\"auth-hidden\"><a href=\"#\" data-toggle=\"modal\" data-target=\"#SignupModal\">Sign Up</a></li> </ul> </div><!--/.nav-collapse --> </div> <div class=\"container search-form-container\"> <div class=\"col-md-8 col-md-offset-2\"> <form class=\"navbar-form crime-search-secondary\" action='/' method=\"get\" onsubmit=\"return false;\"> <div class=\"form-group\" style=\"display:inline;\"> <div class=\"input-group\" style=\"display:table;\"> <span class=\"input-group-addon\" style=\"width:1%;\"><span class=\"glyphicon glyphicon-search search-placeholder\"></span></span> <input class=\"form-control\" name=\"crime-address-secondary\" placeholder=\"Address\" type=\"text\"> <span class=\"input-group-addon search-placeholder\" style=\"width:1%;\"><button type=\"submit\" class=\"btn btn-link\" style=\"padding: 0; margin:0; border: 0;\">search crimes</button></span> </div> </div> </form> </div> </div> <!-- search-form-container --> </nav> <div class=\"container main-container\" style=\"padding-bottom: 150px; margin-top: 2em; \"> <div class=\"main-content\"> <div class=\"row\"> <div class=\"col-sm-8 col-md-10\"> <!-- 2015 new format details pages top --> <ins class=\"adsbygoogle\" style=\"display:block; height:60px;\" data-ad-client=\"ca-pub-7922093619579857\" data-ad-slot=\"7369226943\" data-ad-format=\"horizontal\"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> <div class=\"main-content-column\"> <div class=\"crime-info\"> <div class=\"row\"> <div class=\"col-md-3 text-left\"> <h1>Theft</h1> <p>07/16/2017 02:00 PM</p> </div> <div class=\"col-md-9 text-left\"> <p style=\"border-left: solid 5px #DCDCDC; margin-left: 5px; padding-left: 10px;\"> 11-12 BAYPORT PL, QUEENS, NY<br /><em>Grand Larceny Auto. Of Auto </em><br /><a class=\"btn btn-default\" title=\"View Source\" target=\"_blank\" href=\"https://compstat.nypdonline.org/2e5c3f4b-85c1-4635-83c6-22b27fe7c75c/view/89\">View Source</a> </p> </div> <!-- col-md-8 --> </div> <!-- row --> </div> <!-- crime-info --> <div class=\"crime_details\"> <div class=\"row\"> <div class=\"col-md-12\"> <div id=\"map_canvas\" class=\"col-xs-8 text-center\" style=\"background-color: #E9E5DC; width: 100%; height: 300px; \">Map is loading...</div> </div> </div> <div style=\"margin-top: 0.1em; margin-bottom: 0.1em;\"> <!-- 2015 new format test bottom responsive --> <ins class=\"adsbygoogle\" style=\"display:block; height:60px;\" data-ad-client=\"ca-pub-7922093619579857\" data-ad-slot=\"5232383340\" data-ad-format=\"horizontal\"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class=\"row\"> <div class=\"col-md-12\"> <div id=\"streetview_canvas\" style=\"width: 100%; height: 300px\"></div> <div class=\"disclaimer\" style=\"color: #000000; font-size: 100%; background-color: #fffa73;\"> Google Streetview Disclaimer: This is a Google Maps Street View of the approximate area where the crime occurred. It is not necessarily the exact address view of the crime. </div> </div> </div> <div style=\"padding: 15px;\"> <div class=\"row\" style=\"border-bottom: 2px solid #FFF;\"> <div class=\"col-md-12\" itemscope itemtype=\"http://schema.org/Place\" style=\"background: #EEEEEE;\"> <h1 itemprop=\"name\">Theft - 11-12 BAYPORT PL, QUEENS, NY</h1> <p itemprop=\"description\">Grand Larceny Auto. Of Auto</p> <p itemprop=\"address\" itemscope itemtype=\"http://schema.org/PostalAddress\"> <span itemprop=\"streetAddress\">11-12 BAYPORT PL</span>, <span itemprop=\"addressLocality\">Queens</span>, <span itemprop=\"addressRegion\">NY</span> <span itemprop=\"postalCode\"></span> <span itemprop=\"addressCountry\">US</span> </p> <span itemprop=\"geo\" itemscope itemtype=\"http://schema.org/GeoCoordinates\"> <meta itemprop=\"latitude\" content=\"40.6046019\" /> <meta itemprop=\"longitude\" content=\"-73.7494738\" /> </span> </div> </div> <!-- row --> </div> </div> <div style=\"clear: both;\"></div> </div> <!-- main-content-column --> </div> <!-- col-md-10 --> <div class=\"col-sm-4 col-sm-4 col-md-2 text-left;\"> <div class=\"row\" style=\"margin-bottom: 0.3em;\"> <div class=\"col-md-12\"> <a class=\"btn btn-primary\" role=\"button\" style=\"width: 100%;\" href=\"mailto:?subject=Theft%20-%2011-12%20BAYPORT%20PL%2C%20QUEENS%2C%20NY&body=I%20want%20to%20share%20this%20crime%20with%20you%3A%0a%0ahttp://spotcrime.com/crime/95215796-5c02086a20e817cf1bb5a978a2c10720%0aGrand%20Larceny%20Auto.%20Of%20Auto\">Email to a friend</a> <br /> </div> </div> <div class=\"row\" style=\"margin-bottom: 0.3em;\"> <div class=\"col-md-12\"> <a href=\"http://crimetip.us\" target=\"_blank\" title=\"Submit a Crime Tip\" class=\"btn btn-danger\" role=\"button\" style=\"width: 100%;\">Submit a Crime Tip</a> </div> </div> <!-- 2015 new format detail pages skyscraper --> <ins class=\"adsbygoogle\" style=\"display:inline-block;width:300px;height:600px\" data-ad-client=\"ca-pub-7922093619579857\" data-ad-slot=\"1322693346\"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <!-- col-md-2 --> </div> <!-- row --> </div> <!-- /.main-content --> </div><!-- /.container --> <nav class=\"navbar navbar-default navbar-fixed-bottom\"> <div class=\"container\"> <div class=\"navbar-header\"> <button type=\"button\" class=\"navbar-toggle collapsed\" data-toggle=\"collapse\" data-target=\"#navbar-bottom\" aria-expanded=\"false\" aria-controls=\"navbar\"> <span class=\"sr-only\">Toggle navigation</span> <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span> <span class=\"icon-bar\"></span> </button> </div> <div id=\"navbar-bottom\" class=\"collapse navbar-collapse\"> <ul class=\"nav navbar-nav\"> <li><a href=\"/help.php\">Help</a></li> <li><a href=\"/contact.php\">Contact</a></li> <li><a target=\"_blank\" href=\"http://spotcrime.blogspot.com/\">Blog</a></li> <li><a href=\"/about.php\">About Us</a></li> <li><a href=\"/tos/\">Terms of Use</a></li> <li><a href=\"/privacy/\">Privacy Policy</a></li> <li><a href=\"/disclaimer.html\">Disclaimer</a></li> <li><a style=\"padding-left: 5px; padding-right: 5px;\" href=\"https://facebook.com/crimemap\" target=\"_blank\"><img alt=\"facebook\" src=\"//s3.amazonaws.com/s3.spotcrime.com/media/layout-v2/images/fb-icon.png\"></a></li> <li><a style=\"padding-left: 5px; padding-right: 5px;\" href=\"https://twitter.com/spotcrime\" target=\"_blank\"><img alt=\"twitter\" src=\"//s3.amazonaws.com/s3.spotcrime.com/media/layout-v2/images/twitter-icon.png\"></a></li> <li><a style=\"padding-left: 5px; padding-right: 5px;\" href=\"https://www.youtube.com/user/SpotTube1\" target=\"_blank\"><img alt=\"youtube\" src=\"//s3.amazonaws.com/s3.spotcrime.com/media/layout-v2/images/yt-icon.png\"></a></li> <li><a style=\"padding-left: 5px; padding-right: 5px;\" href=\"https://plus.google.com/100880401142331549679\" target=\"_blank\"><img alt=\"google plus\" src=\"//s3.amazonaws.com/s3.spotcrime.com/media/layout-v2/images/gp-icon.png\"></a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <!-- Modal --> <div class=\"modal\" id=\"SignupModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"SignupModalLabel\" aria-hidden=\"true\"> <div class=\"modal-dialog\"> <div class=\"modal-content\"> <form class=\"form\" action='javascript:signupAlerts();'> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button> <h4 class=\"modal-title\" id=\"SignupModalLabel\">Signup To Receive Crime Alerts</h4> </div> <div class=\"modal-body\"> <div class=\"alert alert-danger errors\" role=\"alert\" style=\"display: none;\"></div> <div class=\"form-group\"> <label class=\"sr-only\" for=\"email\">Email address</label> <input type=\"text\" class=\"form-control\" id=\"email\" placeholder=\"Enter email\"> </div> </div> <div class=\"modal-footer\"> <button type=\"submit\" class=\"btn btn-danger btn-lg\">Get Alerts</button> <button type=\"button\" class=\"btn btn-default btn-lg\" data-dismiss=\"modal\">Close</button> </div> </form> </div> </div> </div> <div class=\"modal\" id=\"SubscribedModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"SubscribedModalLabel\" aria-hidden=\"true\"> <div class=\"modal-dialog\"> <div class=\"modal-content\"> <form class=\"form\" action='javascript:signupAlerts();'> <div class=\"modal-header\"> <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button> <h4 class=\"modal-title\" id=\"SubscribedModalLabel\">Thank you for the subscription!</h4> </div> <div class=\"modal-body\"> <div class=\"alert alert-success info\" role=\"alert\"></div> <div class=\"alert alert-warning\" role=\"alert\">Please check your inbox to confirm your subscription.</div> </div> <div class=\"modal-footer\"> <button type=\"button\" class=\"btn btn-default btn-lg\" data-dismiss=\"modal\">Close</button> </div> </form> </div> </div> </div> <!-- Bootstrap core JavaScript ================================================== --> <!-- Placed at the end of the document so the pages load faster --> <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js\"></script> <!-- Latest compiled and minified JavaScript --> <script src=\"https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js\"></script> <script src=\"//s3.amazonaws.com/s3.spotcrime.com/desktop/media/v1/desktop.js\"></script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-85587602-1', 'auto'); ga('send', 'pageview'); </script> <script src='//maps.google.com/maps/api/js?key=AIzaSyABnRyO3EYI4o4t4Bz6fngF7tw30UGXVx0' type='text/javascript'></script> <script type=\"text/javascript\"> // Enable the visual refresh google.maps.visualRefresh = true; function initialize() { var crime_location = new google.maps.LatLng( 40.60460190000000,-73.74947380000000); var mapOptions = { zoom: 14, center: crime_location, disableDoubleClickZoom: true } var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); var marker = new google.maps.Marker({ map: map, position: crime_location }); // Google StreetView var panoramaOptions = { position: crime_location, pov: { heading: 34, pitch: 10 } }; var panorama = new google.maps.StreetViewPanorama(document.getElementById('streetview_canvas'), panoramaOptions); google.maps.event.addListener(panorama, 'error', handleNoFlash); map.setStreetView(panorama); function handleNoFlash(errorCode) { if (errorCode == 603) { document.getElementById(\"streetview_canvas\").innerHtml = \"You need Adobe Flash to view StreetView\"; return; } else if (errorCode == 600) { // Update a \"Google Streetview Loading...\" text document.getElementById(\"streetview_canvas\").innerHtml = \"\"; return; } else { // Update a \"Google Streetview Loading...\" text document.getElementById(\"streetview_canvas\").innerHtml = \"\"; return; } } } google.maps.event.addDomListener(window, 'load', initialize); </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/