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

/
/
gm

Test String

Code Generator

Generated Code

package main import ( "regexp" "fmt" ) func main() { var re = regexp.MustCompile(`(?m)>.*?<`) var str = ` <title>WhatsApp</title> <meta name="viewport" content="edited text"> <meta name="google" content="edited text"> <meta name="format-detection" content="edited text"> <meta name="description" content="edited text"> <meta name="og:description" content="edited text"> <meta name="og:url" content="edited text"> <meta name="og:title" content="edited text"> <meta name="og:image" content="edited text"> <link rel="apple-touch-icon" sizes="194x194" href="/apple-touch-icon.png" type="image/png"> <link rel="stylesheet" href="/cssm_qr.1de71c5f94dde5fbf180fe974849b354.css"> <style> html, body, #app { height: 100%; width: 100%; overflow: hidden; padding: 0; margin: 0; ---------------- <div tabindex="-1" class="_2EoyP"> <div class="_3qx7_"><button class="_3e4VU"><div class="_1MdKA gt-MT"><span data-testid="back" data-icon="back" class=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="currentColor" d="M12 4l1.4 1.4L7.8 11H20v2H7.8l5.6 5.6L12 20l-8-8 8-8z"></path></svg></span></div><div class="_1MdKA w-vsN"><span data-testid="search" data-icon="search" class=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24"><path fill="currentColor" d="M15.009 13.805h-.636l-.22-.219a5.184 5.184 0 0 0 1.256-3.386 5.207 5.207 0 1 0-5.207 5.208 5.183 5.183 0 0 0 3.385-1.255l.221.22v.635l4.004 3.999 1.194-1.195-3.997-4.007zm-4.808 0a3.605 3.605 0 1 1 0-7.21 3.605 3.605 0 0 1 0 7.21z"></path></svg></span></div></button><span></span> <div class="J3VFH">Pesquise ou crie uma conversa</div><label class="_3xpD_"><div tabindex="-1" class="_2FVVk cBxw-"><div class="_2FbwG" style="visibility: visible;"></div><div class="_3FRCZ copyable-text selectable-text" data-tab="3" dir="ltr" contenteditable="true"></div></div></label></div> --------------- <div class="_2kHpK"> <div class="_3dtfX"> <div class="_3CneP"><span class="_357i8"><span dir="auto" title="edited text" class="_3ko75 _5h6Y_ _3Whw5">Some text</span> <div class="_3XFan"></div> </span> </div> <div class="m61XR">ontem</div> </div> <div class="_1582E"> <div class="_3tBW6"><span class="_2iq-U" title="edited text"><span dir="ltr" class="_3ko75 _5h6Y_ _3Whw5">Some text</span></span> </div> <div class="m61XR"><span></span><span></span><span></span></div> </div> </div> -------------- <div class="_2kHpK"> <div class="_3dtfX"> <div class="_3CneP"> <div class="_357i8"><span dir="auto" title="edited text" class="_3ko75 _5h6Y_ _3Whw5">Some text<img crossorigin="anonymous" src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" alt="" draggable="false" style="background-position: 0px -20px;" class="b3 emoji wa _3Whw5"></span> <div class="_3XFan"></div> </div> </div> <div class="m61XR">08:41</div> </div> <div class="_1582E"> <div class="_3tBW6"><span class="_2iq-U" title="Some text that cross lines more than twice. "><div class="zFnXi"><span data-testid="status-check" data-icon="status-check" class=""><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 18" width="14" height="18"><path fill="currentColor" d="M12.502 5.035l-.57-.444a.434.434 0 0 0-.609.076l-6.39 8.198a.38.38 0 0 1-.577.039l-2.614-2.556a.435.435 0 0 0-.614.007l-.505.516a.435.435 0 0 0 .007.614l3.887 3.8a.38.38 0 0 0 .577-.039l7.483-9.602a.435.435 0 0 0-.075-.609z"></path></svg></span></div><span dir="ltr" class="_3ko75 _5h6Y_ _3Whw5">Some text that cross lines more than twice. </span></span> </div> ` for i, match := range re.FindAllString(str, -1) { fmt.Println(match, "found at index", i) } }

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 Golang, please visit: https://golang.org/pkg/regexp/