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
No Match

r"
"
gms

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#"(?ms)<a[\S ]*href=\"([a-zA-Z0-9\/\.:]*)\"[\S ]*[\s]*><img[\S ]*src=\"([a-zA-Z0-9\/\.]*)\"[\S ]*[\s]*\/{0,1}><\/a>"#).unwrap(); let string = "<!DOCTYPE html> <html lang=\"en\"> <head> <meta charset=\"utf-8\" /> <title>maia :3</title> <link rel=\"stylesheet\" href=\"/style.css\"/> <link rel=\"stylesheet\" href=\"/prism.css\"/> <meta name=\"description\" content=\"meow\" /> <meta name='keywords' content='nyancrimew,maia arson crimew,android,switzerland,hacktivism,lucerne,developer,hacktivism'> <meta property=\"og:title\" content=\"maia :3\"> <meta property=\"og:description\" content=\"meow\"> <meta property=\"og:url\" content=\"https://maia.crimew.gay/\"> <meta property=\"og:image\" content=\"https://maia.crimew.gay/img/cover.jpg\"> <meta property=\"og:site_name\" content=\"maia :3\"> <meta name=\"article:author\" content=\"maia arson crimew\"> <meta name=\"article:published_time\" content=\"2023-01-21T17:21:09.000Z\"> <meta name=\"twitter:card\" content=\"summary_large_image\"> <meta name=\"twitter:site\" content=\"@_nyancrimew\"> <meta name=\"twitter:creator\" content=\"@_nyancrimew\"> <meta name=\"theme-color\" content=\"#eca9cb\"> <link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/img/apple-touch-icon.png\"> <link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/img/favicon-32x32.png\"> <link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/img/favicon-16x16.png\"> <link rel=\"shortcut icon\" href=\"/favicon.ico\"> <link rel=\"alternate\" type=\"application/rss+xml\" href=\"/feed.xml\" /> </head> <body> <header id=\"site_header\"> <h1>maia <sub>arson crimew</sub></h1> <nav> <span><a href=\"/\" class=\"active\">home</a></span> <span>|</span> <span><a href=\"/posts/\" >blog</a></span> <span>|</span> <span><a href=\"/samples/\" >sample packs</a></span> </nav> </header> <div id=\"content\"> <div style=\"display: flex; flex-wrap: wrap; justify-content: center;\"> <div style=\"flex-grow: 1; flex-shrink: 1; flex-basis: 30%; min-width: 200px; max-width: 70%;\"> <img src=\"/img/kitten_cropped.png\" alt=\"a drawing of a small white kitten with black spots sitting and looking at you\"> </div> <div style=\"flex-grow: 2; flex-shrink: 2; flex-basis: 60%;\"> <p> hello i am maia arson crimew <sup>(it/she)</sup> and i am gay, mostly for girls, and i'm a tiny kitten :3 </p> <p> i know lot's of things about cyber security, programming and far too little about music but i still try to do all those things at once. if you like the things i do here or on social media you can <a href=\"https://ko-fi.com/nyancrimew\" target=\"_blank\">support me on ko-fi</a>. links to the various things i do can be found in the footer. if you're looking for some more serious info about me, <a href=\"https://en.wikipedia.org/wiki/maia_arson_crimew\" target=\"_blank\">there is wikipedia for that</a>. </p> </div> </div> </div> <footer> <div class=\"footer-kitten\"><img src=\"/img/walkingkitten_crop.png\" alt=\"a small white kitten with black spots walking across the screen\"></div> <div> <span><a href=\"https://maia.crimew.gay/feed.xml\" rel=\"me\" target=\"_blank\">rss feed</a></span> <span>|</span> <span><a href=\"https://twitter.com/_nyancrimew\" rel=\"me\" target=\"_blank\">birded site</a></span> <span>|</span> <span><a href=\"https://crimew.gay/maia\" rel=\"me\" target=\"_blank\">fedded verse</a></span> <span>|</span> <span><a href=\"https://soundcloud.com/nyancrimew\" rel=\"me\" target=\"_blank\">sounded cloud</a></span> <span>|</span> <span><a href=\"https://last.fm/user/nyancrimew\" rel=\"me\" target=\"_blank\">last dot federated states of micronesia</a></span> <span>|</span> <span><a href=\"https://github.com/nyancrimew\" rel=\"me\" target=\"_blank\">gitted hub</a></span> <span>|</span> <span><a href=\"https://git.lavender.software/nyancrimew\" rel=\"me\" target=\"_blank\">gitted tea</a></span> </div> <div class=\"badges\"> <a href=\"https://maia.crimew.gay\" target=\"_blank\"><img src=\"/badges/maia.crimew.gay.png\" alt=\"maia crimew\" title=\"my site :3\"></a> <a href=\"https://cyber.dabamos.de/88x31\" target=\"_blank\"><img src=\"/badges/88x31.gif\" alt=\"88x31\" title=\"baaaadges\"></a> <a href=\"javascript:alert(&#39;what did i tell you??&#39;)\" target=\"_blank\"><img src=\"/badges/noclick.gif\" alt=\"don&#39;t click here\" title=\"don&#39;t do it\"></a> <img src=\"/badges/acab.gif\" alt=\"acab\" title=\"fuck the cops\"> <a href=\"https://archlinux.org\" target=\"_blank\"><img src=\"/badges/archlinux.gif\" alt=\"arch linux\" title=\"i use arch btw\"></a> <a href=\"https://versary.town\" target=\"_blank\"><img src=\"/badges/versarytown.png\" alt=\"versary town\" title=\"a very cool website by a very cool person &lt;3\"></a> <a href=\"https://goop.house\" target=\"_blank\"><img src=\"/badges/goop.gif\" alt=\"goop house\" title=\"goop house next up\"></a> <img src=\"/badges/anarchynow.gif\" alt=\"anarchy now\" > <a href=\"https://sleepy.zone\" target=\"_blank\"><img src=\"/badges/sleepy.png\" alt=\"sleepy zone\" title=\"sleepy.zone is the best internet radio out there\"></a> <img src=\"/badges/kitten88.gif\" alt=\"kitten&#39;s corner\" title=\"im a kitten fr fr\"> <a href=\"https://oat.zone\" target=\"_blank\"><img src=\"/badges/oatzone.gif\" alt=\"oat.zone\" ></a> <img src=\"/badges/slimesnow.png\" alt=\"slimes now\" > <img src=\"/badges/slugcat.png\" alt=\"slugcat\" > <a href=\"https://sinewave.cyou\" target=\"_blank\"><img src=\"/badges/sinewave.gif\" alt=\"sinewave\" ></a> <img src=\"/badges/nonbinary.png\" alt=\"non-binary pride\" title=\"im non binary fr fr\"> <img src=\"/badges/queer.png\" alt=\"queer pride\" title=\"im queeeer as fuck\"> <img src=\"/badges/piracy.gif\" alt=\"piracy now\" title=\"piracy is swag and you should do it\"> <a href=\"https://utsuho.rocks\" target=\"_blank\"><img src=\"/badges/utsuhorocks.png\" alt=\"utsuho rocks\" title=\"utsuho rocks\"></a> <a href=\"https://ilwag.com\" target=\"_blank\"><img src=\"/badges/ilwagbannersmol.png\" alt=\"ilwag.com\" title=\"cute lil tunes :3\"></a> </div> <script src=\"https://lavender.software/webring/webring-0.2.0.js\" data-site-id=\"maia\"></script> </footer> </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/