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

re = /<meta\s*name="(.*)".*content="(.*)"\s*\/>/ str = ' <!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> ' # Print the match result str.scan(re) do |match| puts match.to_s end

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 Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html