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

/
/
gm

Test String

Code Generator

Generated Code

const regex = /\b\w{4}\b/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('\\b\\w{4}\\b', 'gm') const str = `Lorem ipsum dolor sit amet consectetur adipiscing elit nullam justo donec, morbi eros natoque velit blandit pharetra viverra condimentum curabitur magnis imperdiet, lacus quis libero dapibus dictum varius habitant dis mollis. Hac consectetur volutpat est taciti placerat dictumst sagittis luctus habitasse fringilla vel, vitae ornare at magna velit curabitur leo aptent dignissim etiam. Ullamcorper potenti egestas rutrum blandit suscipit dapibus cursus mollis sit, nec enim habitant congue nullam vehicula massa nascetur bibendum litora, fusce a inceptos hac nunc eget mauris non. Facilisis hac congue magna vivamus nunc finibus posuere scelerisque quisque ut, taciti non maximus vel cubilia dolor nisl sapien mattis sit, curabitur ullamcorper litora sagittis aenean urna mus tortor torquent. Conubia erat morbi himenaeos massa risus tempus et, a praesent nibh fringilla mus quisque pharetra turpis, rhoncus quis eros blandit potenti mattis. Nam egestas maecenas ridiculus morbi lacus dictum porttitor mi, in natoque parturient velit fusce eu at ornare, hendrerit amet est potenti dui nunc iaculis. Turpis aliquam sollicitudin magnis class massa est nullam mi per porta, eu finibus id ipsum vitae urna nisl porttitor nisi habitasse quisque, leo gravida tincidunt parturient suscipit vivamus maecenas iaculis libero. Adipiscing neque phasellus morbi inceptos vitae mauris ridiculus magna sed, netus etiam id tristique eget et himenaeos faucibus mi, curabitur sodales pulvinar proin ultrices ut tempus velit.`; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; while ((m = regex.exec(str)) !== null) { // This is necessary to avoid infinite loops with zero-width matches if (m.index === regex.lastIndex) { regex.lastIndex++; } // The result can be accessed through the `m`-variable. m.forEach((match, groupIndex) => { console.log(`Found match, group ${groupIndex}: ${match}`); }); }

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 JavaScript, please visit: https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions