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 = /^(([a-zA-Z0-9\|\!\._\-\s\:]*<a href=\"#\" onclick=\"ON_CLICK_EVENT\">[a-zA-Z0-9\|\!\._\-]*<\/a>)|(<a href=\"#\" on(c|C)lick=\"(HSBC_pre_chat_est\(\)\;\s)*ON_CLICK_EVENT\"(\s)*>(\s)*<img src=(\'|\")[a-zA-Z0-9\|\!\._\-\:\,\/\s]*(\'|\")(\s)*(\/)*>(\s)*<\/a>)|(<a href=\"#\" onclick='try \{ LPButtonClicked\(\)\; \} catch \(e\) \{\}\; ON_CLICK_EVENT'\; title=\"Start Live Chat\"><img src=\"[a-zA-Z0-9\|\!\._\-\:\,\/\s]*\" border=0 alt=\"Live Chat\" onload=\"LPButtonDisplayed\(\)\"><\/a>)|([a-zA-Z0-9\|\!\._\-\s]*<a href=\"#\" onclick=(\'|\")ON_CLICK_EVENT(\'|\")><span><span class=\"lpStartChat\">[a-zA-Z0-9\|\!\._\-\s]*<\/span><\/span><\/a>)|(<a href='javascript\:\;' on(c|C)lick='javascript\:ON_CLICK_EVENT\;'>(\s)*<img src='[a-zA-Z0-9\|\!\._\-\:\,\/\s]*'(\s)*(border='0'\salt='Chat with an HSBC Representative' title='Chat with an HSBC Representative')*(\/)*>(\s)*<\/a>)|(<a href='#' onClick='javascript\:ON_CLICK_EVENT\; '>[a-zA-Z0-9\|\!\._\-\s]*<\/a>)|(<h4>Live Chat<\/h4>(\s)*<div class=\"supportContentGeneralBoxInnerChat\">(\s)*<h5>Welcome to Live Chat<\/h5>(\s)*<p>How can we help you\?<\/p>(\s)*<p><a class=\"redBtn liveChatBtn\" href=\"#\"(\s)*onclick=\"ON_CLICK_EVENT\" title=\"Start Chat\"><span>Start Chat<\/span><\/a><\/p>(\s)*<\/div>)|(<div style='padding\:0px' box-shadow\: -3px 3px 10px(\s)*#888888\;><a href=\"#\" onClick='ON_CLICK_EVENT\;'target=\"_self\">(\s)*<img src='[a-zA-Z0-9\|\!\._\-\:\,\/\s]*'(\s)*id='SwitchButton' Border='0'\/><\/a><\/div>)|(<div id=\"lpButtonTab\" style=\"float:left; width:30px\" onclick=\"lpStickyButton\.toggleState\(\);\"><img src=\"[a-zA-Z0-9\|\!\._\-\:\,\/\s]*\" width=\"30\" height=\"125\" border=\"0\" \/><\/div>(\s)*<div id=\"lpButtonArea\" style=\"margin-left:30px; width:251px\"><img src='[a-zA-Z0-9\|\!\._\-\:\,\/\s]*' style='cursor:pointer' onclick='ON_CLICK_EVENT' \/><\/div>)|(<div class=\"liveChatSideBox\">(\s)*<h2>Live chat<\/h2>(\s)*<p>Welcome to Live Chat\. How can we help you\?<\/p>(\s)*<p><a class=\"redBtn liveChatBtn\" href=\"#\"(\s)*onclick=\"ON_CLICK_EVENT\"(\s)*title=\"Start Chat\"><span>Start Chat<\/span><\/a><\/p>(\s)*<\/div>))$/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('^(([a-zA-Z0-9\\|\\!\\._\\-\\s\\:]*<a href=\\"#\\" onclick=\\"ON_CLICK_EVENT\\">[a-zA-Z0-9\\|\\!\\._\\-]*<\\\/a>)|(<a href=\\"#\\" on(c|C)lick=\\"(HSBC_pre_chat_est\\(\\)\\;\\s)*ON_CLICK_EVENT\\"(\\s)*>(\\s)*<img src=(\\\'|\\")[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*(\\\'|\\")(\\s)*(\\\/)*>(\\s)*<\\\/a>)|(<a href=\\"#\\" onclick=\'try \\{ LPButtonClicked\\(\\)\\; \\} catch \\(e\\) \\{\\}\\; ON_CLICK_EVENT\'\\; title=\\"Start Live Chat\\"><img src=\\"[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\\" border=0 alt=\\"Live Chat\\" onload=\\"LPButtonDisplayed\\(\\)\\"><\\\/a>)|([a-zA-Z0-9\\|\\!\\._\\-\\s]*<a href=\\"#\\" onclick=(\\\'|\\")ON_CLICK_EVENT(\\\'|\\")><span><span class=\\"lpStartChat\\">[a-zA-Z0-9\\|\\!\\._\\-\\s]*<\\\/span><\\\/span><\\\/a>)|(<a href=\'javascript\\:\\;\' on(c|C)lick=\'javascript\\:ON_CLICK_EVENT\\;\'>(\\s)*<img src=\'[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\'(\\s)*(border=\'0\'\\salt=\'Chat with an HSBC Representative\' title=\'Chat with an HSBC Representative\')*(\\\/)*>(\\s)*<\\\/a>)|(<a href=\'#\' onClick=\'javascript\\:ON_CLICK_EVENT\\; \'>[a-zA-Z0-9\\|\\!\\._\\-\\s]*<\\\/a>)|(<h4>Live Chat<\\\/h4>(\\s)*<div class=\\"supportContentGeneralBoxInnerChat\\">(\\s)*<h5>Welcome to Live Chat<\\\/h5>(\\s)*<p>How can we help you\\?<\\\/p>(\\s)*<p><a class=\\"redBtn liveChatBtn\\" href=\\"#\\"(\\s)*onclick=\\"ON_CLICK_EVENT\\" title=\\"Start Chat\\"><span>Start Chat<\\\/span><\\\/a><\\\/p>(\\s)*<\\\/div>)|(<div style=\'padding\\:0px\' box-shadow\\: -3px 3px 10px(\\s)*#888888\\;><a href=\\"#\\" onClick=\'ON_CLICK_EVENT\\;\'target=\\"_self\\">(\\s)*<img src=\'[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\'(\\s)*id=\'SwitchButton\' Border=\'0\'\\\/><\\\/a><\\\/div>)|(<div id=\\"lpButtonTab\\" style=\\"float:left; width:30px\\" onclick=\\"lpStickyButton\\.toggleState\\(\\);\\"><img src=\\"[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\\" width=\\"30\\" height=\\"125\\" border=\\"0\\" \\\/><\\\/div>(\\s)*<div id=\\"lpButtonArea\\" style=\\"margin-left:30px; width:251px\\"><img src=\'[a-zA-Z0-9\\|\\!\\._\\-\\:\\,\\\/\\s]*\' style=\'cursor:pointer\' onclick=\'ON_CLICK_EVENT\' \\\/><\\\/div>)|(<div class=\\"liveChatSideBox\\">(\\s)*<h2>Live chat<\\\/h2>(\\s)*<p>Welcome to Live Chat\\. How can we help you\\?<\\\/p>(\\s)*<p><a class=\\"redBtn liveChatBtn\\" href=\\"#\\"(\\s)*onclick=\\"ON_CLICK_EVENT\\"(\\s)*title=\\"Start Chat\\"><span>Start Chat<\\\/span><\\\/a><\\\/p>(\\s)*<\\\/div>))$', 'gm') const str = `<div class="liveChatSideBox"> <h2>Live chat</h2> <p>Welcome to Live Chat. How can we help you?</p> <p><a class="redBtn liveChatBtn" href="#" onclick="ON_CLICK_EVENT" title="Start Chat"><span>Start Chat</span></a></p> </div> <a href="#" onclick="ON_CLICK_EVENT" > <img src='https://www.hsbc.co.uk/content_static/en/images/en/alt_design_3E.png' /> </a>`; // 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