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

/
/
gm

Test String

Code Generator

Generated Code

using System; using System.Text.RegularExpressions; public class Example { public static void Main() { string pattern = @"<xxxx\b[^<]*(?:(?!<\/yyyy>)<[^<]*)*<\/yyyy>"; string input = @"<link rel='stylesheet' id='social-logos-css' href='https://www.markmallett.com/blog/wp-content/plugins/jetpack/_inc/social-logos/social-logos.min.css?ver=1' type='text/css' media='all' /> <link rel='stylesheet' id='jetpack_css-css' href='https://www.markmallett.com/blog/wp-content/plugins/jetpack/css/jetpack.css?ver=6.5' type='text/css' media='all' /> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-includes/js/jquery/jquery.js?ver=1.12.4'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-includes/js/jquery/jquery-migrate.min.js?ver=1.4.1'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/plugins/footnotes/class/../js/jquery.tools.min.js?ver=4.9.8'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/plugins/add-to-any/addtoany.min.js?ver=1.0'></script> <script type='text/javascript'> var mejsL10n = {""language"":""en"",""strings"":{""mejs.install-flash"":""You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\/\/get.adobe.com\/flashplayer\/"",""mejs.fullscreen-off"":""Turn off Fullscreen"",""mejs.fullscreen-on"":""Go Fullscreen"",""mejs.download-video"":""Download Video"",""mejs.fullscreen"":""Fullscreen"",""mejs.time-jump-forward"":[""Jump forward 1 second"",""Jump forward %1 seconds""],""mejs.loop"":""Toggle Loop"",""mejs.play"":""Play"",""mejs.pause"":""Pause"",""mejs.close"":""Close"",""mejs.time-slider"":""Time Slider"",""mejs.time-help-text"":""Use Left\/Right Arrow keys to advance one second, Up\/Down arrows to advance ten seconds."",""mejs.time-skip-back"":[""Skip back 1 second"",""Skip back %1 seconds""],""mejs.captions-subtitles"":""Captions\/Subtitles"",""mejs.captions-chapters"":""Chapters"",""mejs.none"":""None"",""mejs.mute-toggle"":""Mute Toggle"",""mejs.volume-help-text"":""Use Up\/Down Arrow keys to increase or decrease volume."",""mejs.unmute"":""Unmute"",""mejs.mute"":""Mute"",""mejs.volume-slider"":""Volume Slider"",""mejs.video-player"":""Video Player"",""mejs.audio-player"":""Audio Player"",""mejs.ad-skip"":""Skip ad"",""mejs.ad-skip-info"":[""Skip in 1 second"",""Skip in %1 seconds""],""mejs.source-chooser"":""Source Chooser"",""mejs.stop"":""Stop"",""mejs.speed-rate"":""Speed Rate"",""mejs.live-broadcast"":""Live Broadcast"",""mejs.afrikaans"":""Afrikaans"",""mejs.albanian"":""Albanian"",""mejs.arabic"":""Arabic"",""mejs.belarusian"":""Belarusian"",""mejs.bulgarian"":""Bulgarian"",""mejs.catalan"":""Catalan"",""mejs.chinese"":""Chinese"",""mejs.chinese-simplified"":""Chinese (Simplified)"",""mejs.chinese-traditional"":""Chinese (Traditional)"",""mejs.croatian"":""Croatian"",""mejs.czech"":""Czech"",""mejs.danish"":""Danish"",""mejs.dutch"":""Dutch"",""mejs.english"":""English"",""mejs.estonian"":""Estonian"",""mejs.filipino"":""Filipino"",""mejs.finnish"":""Finnish"",""mejs.french"":""French"",""mejs.galician"":""Galician"",""mejs.german"":""German"",""mejs.greek"":""Greek"",""mejs.haitian-creole"":""Haitian Creole"",""mejs.hebrew"":""Hebrew"",""mejs.hindi"":""Hindi"",""mejs.hungarian"":""Hungarian"",""mejs.icelandic"":""Icelandic"",""mejs.indonesian"":""Indonesian"",""mejs.irish"":""Irish"",""mejs.italian"":""Italian"",""mejs.japanese"":""Japanese"",""mejs.korean"":""Korean"",""mejs.latvian"":""Latvian"",""mejs.lithuanian"":""Lithuanian"",""mejs.macedonian"":""Macedonian"",""mejs.malay"":""Malay"",""mejs.maltese"":""Maltese"",""mejs.norwegian"":""Norwegian"",""mejs.persian"":""Persian"",""mejs.polish"":""Polish"",""mejs.portuguese"":""Portuguese"",""mejs.romanian"":""Romanian"",""mejs.russian"":""Russian"",""mejs.serbian"":""Serbian"",""mejs.slovak"":""Slovak"",""mejs.slovenian"":""Slovenian"",""mejs.spanish"":""Spanish"",""mejs.swahili"":""Swahili"",""mejs.swedish"":""Swedish"",""mejs.tagalog"":""Tagalog"",""mejs.thai"":""Thai"",""mejs.turkish"":""Turkish"",""mejs.ukrainian"":""Ukrainian"",""mejs.vietnamese"":""Vietnamese"",""mejs.welsh"":""Welsh"",""mejs.yiddish"":""Yiddish""}}; </script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.6-78496d1'></script> <xxxx type='text/javascript' src='https://www.markmallett.com/blog/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=4.9.8'></yyyy> <script type='text/javascript'> /* <![CDATA[ */ var _wpmejsSettings = {""pluginPath"":""\/blog\/wp-includes\/js\/mediaelement\/"",""classPrefix"":""mejs-"",""stretching"":""responsive""}; /* ]]> */ </script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=4.9.8'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/plugins/audio-player-by-clammr/js/clammr-audio-player.js?ver=4.9.8'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/themes/vantage/js/jquery.flexslider.min.js?ver=2.1'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/themes/vantage/js/jquery.touchSwipe.min.js?ver=1.6.6'></script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/themes/vantage/js/jquery.theme-main.min.js?ver=1.7.11'></script> <!--[if lt IE 9]> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/themes/vantage/js/html5.min.js?ver=3.7.3'></script> <![endif]--> <!--[if (gte IE 6)&(lte IE 8)]> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/themes/vantage/js/selectivizr.min.js?ver=1.0.2'></script> <![endif]--> <script type='text/javascript'> /* <![CDATA[ */ var mobileNav = {""search"":{""url"":""https:\/\/www.markmallett.com\/blog"",""placeholder"":""Search""},""text"":{""navigate"":""Menu"",""back"":""Back"",""close"":""Close""},""nextIconUrl"":""https:\/\/www.markmallett.com\/blog\/wp-content\/themes\/vantage\/inc\/mobilenav\/images\/next.png"",""mobileMenuClose"":""<i class=\""fa fa-times\""><\/i>""}; /* ]]> */ </script> <script type='text/javascript' src='https://www.markmallett.com/blog/wp-content/themes/vantage/inc/mobilenav/js/mobilenav.min.js?ver=1.7.11'></script> <link rel='https://api.w.org/' href='https://www.markmallett.com/blog/wp-json/' /> <link rel=""EditURI"" type=""application/rsd+xml"" title=""RSD"" href=""https://www.markmallett.com/blog/xmlrpc.php?rsd"" /> <link rel=""wlwmanifest"" type=""application/wlwmanifest+xml"" href=""https://www.markmallett.com/blog/wp-includes/wlwmanifest.xml"" /> <link rel='prev' title='God Has a Face' href='https://www.markmallett.com/blog/2017/12/25/god-has-a-face/' /> <link rel='next' title='You Be Noah' href='https://www.markmallett.com/blog/2018/01/04/you-be-noah/' /> <meta name=""generator"" content=""WordPress 4.9.8"" /> <link rel='shortlink' href='https://wp.me/p8tvP8-8tm' /> <link rel=""alternate"" type=""application/json+oembed"" href=""https://www.markmallett.com/blog/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.markmallett.com%2Fblog%2F2018%2F01%2F02%2Fthe-relics-and-the-message%2F"" /> <link rel=""alternate"" type=""text/xml+oembed"" href=""https://www.markmallett.com/blog/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.markmallett.com%2Fblog%2F2018%2F01%2F02%2Fthe-relics-and-the-message%2F&#038;format=xml"" />"; RegexOptions options = RegexOptions.Multiline; foreach (Match m in Regex.Matches(input, pattern, options)) { 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