Regular Expressions 101

Save & Share

Flavor

  • PCRE2 (PHP)
  • ECMAScript (JavaScript)
  • Python
  • Golang
  • Java
  • .NET 7.0 (C#)
  • Rust
  • PCRE (Legacy)
  • Regex Flavor Guide

Function

  • Match
  • Substitution
  • List
  • Unit Tests
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]
  • Character class intersection
    [\w&&[^\d]]
  • 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
Processing...

Test String

Code Generator

Generated Code

const regex = /^data\:(?<type>image\/(png|tiff|jpg|gif|jpeg|bmp));base64,(?<data>[A-Z0-9\+\/\=])*$/i; // Alternative syntax using RegExp constructor // const regex = new RegExp('^data\\:(?<type>image\\\/(png|tiff|jpg|gif|jpeg|bmp));base64,(?<data>[A-Z0-9\\+\\\/\\=])*$', 'i') const str = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAiCAYAAABBY8kOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAQIwAAECMBrgwp4wAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAM4SURBVEiJvZdNaFRXFMd/577HiC0yFkEX0kUXxUJR86Ii1IWtFsUimPoRFLWirsSP6mRsLZgScFE1mUnUVtyquPEDFT+6ErFZlEJwJvixEVu6qwqaD8Fk8u49Xcww5pm8TEYnHng8zrnv/H/nXN599z7hx64k1juOsgpIUlvrAa7i2+/9EqQedAPo09pyZDpIK6F3zEdZhcomssHvtYWULN3to+6MAZIIPRMCAVB9AUw1EwZ4w/wRkabcRlRnl30Ri0tkMIVDKDfIBjdrA4IfgBAjjwFwDGEKh4D1eHQA0HLbZ2DalFhVlwg5+ln/8NDoU2fkLFaP0hY0ItoJbMeYBlqDRwD0J68zZJ/HXvZVH+ncl5U6ApiJkT9pyh8D3YNIM+rmAZ0AeGwjtLMiGeK9BOcAUAmZEtyrDFL+AU0Bx1EOgusF2QmlqbOcQLzV0Rz9ley83TGFx3UkH4O7iLpGRP5GzRpk2LCV7Yi3P5Iy6I252EcByTPQA2AOlMWL99vlRzqCHqhu7Y0EZeq+rkbg7UGpu99hZGXZV7GE0oKve8E9JFN/ojYgkUZUpqHuTokEvrcDdAPOLCoWk/8K4dNYVVHFJi7R/vnzeFBRvBNj/qKt7jLp/FbUnUL1G9qDBwAYtxI1i2NBikWGuoAKIJUPQE/TlFuPagOiP4NZC9wqlXwNIfqWWXeL9vquOHZcR32IaUDddUSOAPdBfwJ2FId1KciKSIqRAaBKkMgnYA2ebsJJH04WRtZRpr4ZaI4THR9IeYToFlSWY0vqxdvDaoQrg7LBPmDfu4iOD5TOnURZPiIukqOtbm3tQLAA+ANl+Ab3Bei6stfyIMGA/TBWVQuOI/N7K4FA6CYTXCj7qbyJgPoK1xCWxdfvQSq/hGxd+fsYtx+NbcZsxunMqHbiJWFoAVDr6Jj77/DhtwM5dwrh22hs8Dfag11xKXEb31LS+UmvRXRONGvyFoYK6UgsWfhvrNpGA50HlqH6ersQADlb9osHj/43E6sDtQWtQGs1IuOx93aAfK+gXpSpE0YQ+Qjo8RGugh4mlXOIe1JTiJoZqPsFuOLj2T2EXgfCOTC17az4l3KZwuDe/wFfWTIAhh7wwQAAAABJRU5ErkJggg==`; // Reset `lastIndex` if this regex is defined globally // regex.lastIndex = 0; let m; if ((m = regex.exec(str)) !== null) { // 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