Regular Expressions 101

Save & Share

  • Regex Version: ver. 1
  • Update Regex
    ctrl+⇧+s
  • Save new Regex
    ctrl+s
  • Add to Community Library

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

/
/

Test String

Code Generator

Generated Code

$re = '/(?s)(<pre>.+?<\/pre>)/'; $str = ' <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>\'HPTjNRgUfG\' | TextUploader.com</title> <meta name="viewport" content="initial-scale=1.0,maximum-scale=1.0,user-scalable=no"> <link rel="icon" type="image/ico" href="http://textuploader.com/favicon.ico"> <meta property="og:title" content="HPTjNRgUfG" xmlns="http://www.w3.org/1999/html"/> <meta property="og:type" content="article"/> <meta property="og:url" content="http://textuploader.com/5jx4u"/> <meta property="og:site_name" content="textuploader.com - HPTjNRgUfG"/> <meta property="og:description" content="Please call back later &lt;a href=&quot; http://philadelphiaexplorers.org/about-the-explorers-club/#annual &quot;&gt;a..."/> <link rel="canonical" href="http://textuploader.com/5jx4u"/> <!-- bootstrap framework css --> <link media="all" type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.0/css/bootstrap.min.css"> <link media="all" type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.0/css/bootstrap-responsive.min.css"> <!-- power tooltips --> <link media="all" type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/jquery-powertip/1.1.0/jquery.powertip.css"> <!-- main stylesheet --> <link media="all" type="text/css" rel="stylesheet" href="http://textuploader.com/assets/css/beoro.css"> <link media="all" type="text/css" rel="stylesheet" href="http://textuploader.com/assets/css/tu_custom.css"> <!--[if lte IE 8]><link media="all" type="text/css" rel="stylesheet" href="http://textuploader.com/assets/css/ie8.css"> <![endif]--> <!--[if IE 9]><link media="all" type="text/css" rel="stylesheet" href="http://textuploader.com/assets/css/ie9.css"> <![endif]--> <!--[if lt IE 9]> <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.2pre/html5shiv.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.1.0/respond.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/flot/0.7/excanvas.min.js"></script> <![endif]--> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push([\'_setAccount\', \'UA-36314765-1\']); _gaq.push([\'_setDomainName\', \'textuploader.com\']); _gaq.push([\'_setAllowLinker\', true]); _gaq.push([\'_trackPageview\']); (function() { var ga = document.createElement(\'script\'); ga.type = \'text/javascript\'; ga.async = true; ga.src = (\'https:\' == document.location.protocol ? \'https://ssl\' : \'http://www\') + \'.google-analytics.com/ga.js\'; var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(ga, s); })(); </script> <link media="all" type="text/css" rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/styles/default.min.css"> <script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/7.3/highlight.min.js"></script> <script>hljs.initHighlightingOnLoad();</script> </head> <body class="bg_c"> <div id="fb-root"></div> <script>(function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=456470037742170"; fjs.parentNode.insertBefore(js, fjs); }(document, \'script\', \'facebook-jssdk\'));</script> <!-- main wrapper (without footer) --> <div class="main-wrapper"> <!-- top bar --> <div class="navbar navbar-fixed-top"> <div class="navbar-inner"> <div class="container"> <div class="pull-right top-search"> </div> <div id="fade-menu" class="pull-left"> <ul class="clearfix" id="mobile-nav"> <li><a href="http://textuploader.com/">Home</a></li> <li><a href="http://textuploader.com/discover">Discover</a></li> <li><a href="http://textuploader.com/help">Help</a></li> <li><a href="http://textuploader.com/developers">Developers</a></li> <li><a href="http://textuploader.com/contact">Contact</a></li> <li><a href=\'https://textuploader.com/profile\'>My Account</a> </li> </ul> </div> </div> </div> </div> <!-- header --> <header> <div class="container"> <div class="row"> <div class="span3"> <!-- <div class="main-logo"><a href="http://textuploader.com/"><img src="http://textuploader.com/assets/img/textuploader_logo.png" alt="TextUploader.com"></div> --> <div class="main-logo"><a href=\'http://textuploader.com/\'><img src="http://textuploader.com/assets/img/textuploader_logo.png" alt="TextUploader.com"></a></div> </div> <div class="span5"> <nav class="nav-icons"> <!-- small icons navigation --> </nav> </div> <div class="span4"> <div class="user-box"> <div class="user-box-inner"> <img src="//www.gravatar.com/avatar/d41d8cd98f00b204e9800998ecf8427e?s=80&r=g&d=mm" class="user-avatar img-avatar" alt="Gravatar"/> <div class="user-info"> <a href="https://textuploader.com/register">Create an Account</a> <ul class="unstyled"> <li><a href="https://textuploader.com/auth/login">Login</a></li> <li>&middot;</li> <li><a href="https://textuploader.com/auth/password/forgot">Password</a></li> </ul> </div> </div> </div> </div> </div> </div> </header> <!-- breadcrumbs --> <div class="container"> <ul id="breadcrumbs"> <li> <a href="http://textuploader.com/"> <i class="icon-home"></i> </a></li> <li><a href="http://textuploader.com/">Home</a></li> <li><a href="http://textuploader.com/5jx4u">textuploader.com/5jx4u</a></li> <li><span>Posted on: 11/16/15 1:59:00 AM UTC</span></li> </ul> </div> <!-- main content --> <div class="container"> <div class="row-fluid"> <div class="span12"> <div class="w-box w-box-blue"> <div class="w-box-header"><h4>"HPTjNRgUfG" - Views: 2 &middot; Hits: 2 - Type: Public</h4></div> <div class="w-box-content cnt_a "> <div class="toolbar clearfix"> <div class="pull-left"> <div class="toolbar-icons clearfix"> <div style="overflow:hidden;width:90px;float:left;"> <div class="fb-like" data-href="http://textuploader.com/5jx4u" data-send="false" data-layout="button_count" data-width="450" data-show-faces="false"></div> </div> <div style="overflow:hidden;width:90px;float:left;"> <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://textuploader.com/5jx4u">Tweet</a> </div> <div style="overflow:hidden;width:90px;float:left;"> <div class="g-plusone" data-size="medium" data-annotation="none" data-href="http://textuploader.com/5jx4u"></div> </div> <div style="clear:both"></div> </div> </div> <div class="pull-right"> <div class="btn-group"> <button class="btn btn-mini" onClick="parent.location=\'http://textuploader.com/5jx4u/rev\'; void(0);">Revisions (0)</button> <button class="btn btn-mini" onClick="parent.location=\'http://textuploader.com/contact\'; void(0);">Report Abuse</button> </div> </div> </div> <pre><code class=\'no-highlight\'>Please call back later &lt;a href=&quot; http://philadelphiaexplorers.org/about-the-explorers-club/#annual &quot;&gt;accidently took 2 40 mg paxil&lt;/a&gt; &quot;We need that flexibility,&quot; Fox said. &quot;When you pick your offensive line, not just for the season, but for game day, you have to pick them from the standpoint of having some flexibility. You&#039;ve got to have a swing guard/center, you&#039;ve got to have a swing tackle/guard, for the games.&quot; </code></pre> </div> </div> </div> </div> </div> <div class="footer_space"></div> </div> <!-- footer --> <footer> <div class="container"> <div class="row"> <div class="span8"> <div>&copy; 2016 <a href="http://www.exsom.com" target="_blank">Exsom Group, LLC</a>. All Rights Reserved.</div> </div> <div class="span4"> <ul class="unstyled"> <!-- <li><a href="https://tuarmor.com">TUArmor</a></li> <li>&middot;</li> --> <li><a href="http://textuploader.com/terms-of-service">Terms of Service</a></li> <li>&middot;</li> <li><a href="http://textuploader.com/privacy">Privacy Policy</a></li> <li>&middot;</li> <li><a href="http://textuploader.com/dmca">DMCA</a></li> <li>&middot;</li> <li><a href="http://status.textuploader.com/">System Status</a></li> </ul> </div> </div> </div> </footer> <!-- Common JS --> <!-- jQuery framework --> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> <!-- bootstrap Framework plugins --> <script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/2.3.0//js/bootstrap.min.js"></script> <!-- top menu --> <script src="http://textuploader.com/assets/js/jquery.fademenu.js"></script> <!-- top mobile menu --> <script src="http://textuploader.com/assets/js/selectnav.min.js"></script> <!-- actual width/height of hidden DOM elements --> <script src="http://textuploader.com/assets/js/jquery.actual.min.js"></script> <!-- jquery easing animations --> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.3/jquery.easing.min.js"></script> <!-- power tooltips --> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery-powertip/1.1.0/jquery.powertip-1.1.0.min.js"></script> <!-- date library --> <script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/1.7.2/moment.min.js"></script> <!-- common functions --> <script src="http://textuploader.com/assets/js/beoro_common.js"></script> <!-- twitter button code --> <script>!function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], p = /^http:/.test(d.location) ? \'http\' : \'https\'; if (!d.getElementById(id)) { js = d.createElement(s); js.id = id; js.src = p + \'://platform.twitter.com/widgets.js\'; fjs.parentNode.insertBefore(js, fjs); } }(document, \'script\', \'twitter-wjs\');</script> <!-- +1 code --> <script type="text/javascript"> (function () { var po = document.createElement(\'script\'); po.type = \'text/javascript\'; po.async = true; po.src = \'//apis.google.com/js/plusone.js\'; var s = document.getElementsByTagName(\'script\')[0]; s.parentNode.insertBefore(po, s); })(); </script> </body> </html>'; preg_match($re, $str, $matches, PREG_OFFSET_CAPTURE, 0); // Print the entire match result var_dump($matches);

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 PHP, please visit: http://php.net/manual/en/ref.pcre.php