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

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"(?s)(<pre>.+?<\/pre>)"; string input = @" <!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>"; Match m = Regex.Match(input, pattern); 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