Regular Expressions 101

Save & Share

  • Regex Version: ver. 2
  • 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
No Match

/
/
g

Test String

Code Generator

Generated Code

const regex = /(Trotz­dem\s*?(?:<\/?[^>]*?>)?\s*?gibt\s*?(?:<\/?[^>]*?>)?\s*?es\s*?(?:<\/?[^>]*?>)?\s*?Unter­su­chun­gen,\s*?(?:<\/?[^>]*?>)?\s*?die\s*?(?:<\/?[^>]*?>)?\s*?nahe­le­gen,\s*?(?:<\/?[^>]*?>)?\s*?dass\s*?(?:<\/?[^>]*?>)?\s*?bis\s*?(?:<\/?[^>]*?>)?\s*?zu\s*?(?:<\/?[^>]*?>)?\s*?20%\s*?(?:<\/?[^>]*?>)?\s*?der\s*?(?:<\/?[^>]*?>)?\s*?Stu­die­ren­den\s*?(?:<\/?[^>]*?>)?\s*?in\s*?(?:<\/?[^>]*?>)?\s*?Deutsch­land\s*?(?:<\/?[^>]*?>)?\s*?wäh­rend\s*?(?:<\/?[^>]*?>)?\s*?der\s*?(?:<\/?[^>]*?>)?\s*?Prü­fungs­vor­be­rei­tung\s*?(?:<\/?[^>]*?>)?\s*?Rita­lin\s*?(?:<\/?[^>]*?>)?\s*?ein­schmeis­sen\s*?(?:<\/?[^>]*?>)?\s*?\[2\],\s*?(?:<\/?[^>]*?>)?\s*?Repor­ta­gen,\s*?(?:<\/?[^>]*?>)?\s*?dass\s*?(?:<\/?[^>]*?>)?\s*?bri­ti­sche\s*?(?:<\/?[^>]*?>)?\s*?Stu­die­rende\s*?(?:<\/?[^>]*?>)?\s*?Moda­fi­nil\s*?(?:<\/?[^>]*?>)?\s*?bes­tens\s*?(?:<\/?[^>]*?>)?\s*?ken­nen\[3\]\s*?(?:<\/?[^>]*?>)?\s*?und\s*?(?:<\/?[^>]*?>)?\s*?Stu­die­rende\s*?(?:<\/?[^>]*?>)?\s*?welt­weit\s*?(?:<\/?[^>]*?>)?\s*?auch\s*?(?:<\/?[^>]*?>)?\s*?nach\s*?(?:<\/?[^>]*?>)?\s*?der\s*?(?:<\/?[^>]*?>)?\s*?Silk\s*?(?:<\/?[^>]*?>)?\s*?Road — einem\s*?(?:<\/?[^>]*?>)?\s*?mitt­ler­weile\s*?(?:<\/?[^>]*?>)?\s*?ein­ge­stell­ten\s*?(?:<\/?[^>]*?>)?\s*?Schwarz­markt\s*?(?:<\/?[^>]*?>)?\s*?im\s*?(?:<\/?[^>]*?>)?\s*?Deep\s*?(?:<\/?[^>]*?>)?\s*?Web – mit\s*?(?:<\/?[^>]*?>)?\s*?ille­ga­len\s*?(?:<\/?[^>]*?>)?\s*?„Nootro­pics“\s*?(?:<\/?[^>]*?>)?\s*?experimentieren\.)/g; // Alternative syntax using RegExp constructor // const regex = new RegExp('(Trotz­dem\\s*?(?:<\\\/?[^>]*?>)?\\s*?gibt\\s*?(?:<\\\/?[^>]*?>)?\\s*?es\\s*?(?:<\\\/?[^>]*?>)?\\s*?Unter­su­chun­gen,\\s*?(?:<\\\/?[^>]*?>)?\\s*?die\\s*?(?:<\\\/?[^>]*?>)?\\s*?nahe­le­gen,\\s*?(?:<\\\/?[^>]*?>)?\\s*?dass\\s*?(?:<\\\/?[^>]*?>)?\\s*?bis\\s*?(?:<\\\/?[^>]*?>)?\\s*?zu\\s*?(?:<\\\/?[^>]*?>)?\\s*?20%\\s*?(?:<\\\/?[^>]*?>)?\\s*?der\\s*?(?:<\\\/?[^>]*?>)?\\s*?Stu­die­ren­den\\s*?(?:<\\\/?[^>]*?>)?\\s*?in\\s*?(?:<\\\/?[^>]*?>)?\\s*?Deutsch­land\\s*?(?:<\\\/?[^>]*?>)?\\s*?wäh­rend\\s*?(?:<\\\/?[^>]*?>)?\\s*?der\\s*?(?:<\\\/?[^>]*?>)?\\s*?Prü­fungs­vor­be­rei­tung\\s*?(?:<\\\/?[^>]*?>)?\\s*?Rita­lin\\s*?(?:<\\\/?[^>]*?>)?\\s*?ein­schmeis­sen\\s*?(?:<\\\/?[^>]*?>)?\\s*?\\[2\\],\\s*?(?:<\\\/?[^>]*?>)?\\s*?Repor­ta­gen,\\s*?(?:<\\\/?[^>]*?>)?\\s*?dass\\s*?(?:<\\\/?[^>]*?>)?\\s*?bri­ti­sche\\s*?(?:<\\\/?[^>]*?>)?\\s*?Stu­die­rende\\s*?(?:<\\\/?[^>]*?>)?\\s*?Moda­fi­nil\\s*?(?:<\\\/?[^>]*?>)?\\s*?bes­tens\\s*?(?:<\\\/?[^>]*?>)?\\s*?ken­nen\\[3\\]\\s*?(?:<\\\/?[^>]*?>)?\\s*?und\\s*?(?:<\\\/?[^>]*?>)?\\s*?Stu­die­rende\\s*?(?:<\\\/?[^>]*?>)?\\s*?welt­weit\\s*?(?:<\\\/?[^>]*?>)?\\s*?auch\\s*?(?:<\\\/?[^>]*?>)?\\s*?nach\\s*?(?:<\\\/?[^>]*?>)?\\s*?der\\s*?(?:<\\\/?[^>]*?>)?\\s*?Silk\\s*?(?:<\\\/?[^>]*?>)?\\s*?Road — einem\\s*?(?:<\\\/?[^>]*?>)?\\s*?mitt­ler­weile\\s*?(?:<\\\/?[^>]*?>)?\\s*?ein­ge­stell­ten\\s*?(?:<\\\/?[^>]*?>)?\\s*?Schwarz­markt\\s*?(?:<\\\/?[^>]*?>)?\\s*?im\\s*?(?:<\\\/?[^>]*?>)?\\s*?Deep\\s*?(?:<\\\/?[^>]*?>)?\\s*?Web – mit\\s*?(?:<\\\/?[^>]*?>)?\\s*?ille­ga­len\\s*?(?:<\\\/?[^>]*?>)?\\s*?„Nootro­pics“\\s*?(?:<\\\/?[^>]*?>)?\\s*?experimentieren\\.)', 'g') const str = `<p>Die <span class="caps">GDS</span> zeich­net also das Bild einer Gesell­schaft, in der Dro­gen pri­mär Rausch, Genuss und Spass sind. Tabak ist zwar das bekann­teste – und unge­sün­deste – Mit­tel gegen Stress, aber sonst sind die Leis­tungs­stei­ge­rer in der Liste weit abge­schla­gen. Trotz­dem gibt es Unter­su­chun­gen, die nahe­le­gen, dass bis zu 20% der Stu­die­ren­den in Deutsch­land wäh­rend der Prü­fungs­vor­be­rei­tung Rita­lin ein­schmeis­sen <a href="#_ftn2" name="_ftnref2">[2]</a>, Repor­ta­gen, dass bri­ti­sche Stu­die­rende Moda­fi­nil bes­tens ken­nen<a href="#_ftn3" name="_ftnref3">[3]</a> und Stu­die­rende welt­weit auch nach der <a href="https://de.wikipedia.org/wiki/Silk_Road" target="_blank">Silk Road</a> — einem mitt­ler­weile ein­ge­stell­ten Schwarz­markt im Deep Web – mit ille­ga­len „Nootro­pics“ experimentieren.</p>`; // 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