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

/
/
gm

Test String

Code Generator

Generated Code

const regex = /\[null,\[\["\/m\/.+?],"(?<name>[^"]+)".+?\[(?<price>[^,]+),(?<value>[^,]+),(?<percentage>[^,]+).+?\]."(?<region>[^\/]+).+?null,"(?<stock>[^"]+)/gm; // Alternative syntax using RegExp constructor // const regex = new RegExp('\\[null,\\[\\["\\\/m\\\/.+?],"(?<name>[^"]+)".+?\\[(?<price>[^,]+),(?<value>[^,]+),(?<percentage>[^,]+).+?\\]."(?<region>[^\\\/]+).+?null,"(?<stock>[^"]+)', 'gm') const str = `{"key":"ds:6","hash":"2","data":[[[1,[[null,[["/m/0cqyw",[".DJI","INDEXDJX"],"Dow Jones Industrial Average",1,null,[33745.69,199.3711,0.5943158,2,2,2],null,33546.32,null,null,null,[1668810739],"America/New_York",-18000,"/m/0cqyw",null,null,[1668810739],null,[[1,[2022,11,19,9,30,null,null,[-18000]],[2022,11,19,16,null,null,null,[-18000]]]],null,".DJI:INDEXDJX"]],"Dow Jones"],[null,[["/m/016yss",[".INX","INDEXSP"],"S&P 500",1,null,[3965.34,18.78003,0.47585818,2,2,2],null,3946.56,null,null,null,[1668810739],"America/New_York",-18000,"/m/016yss",null,null,[1668810739],null,[[1,[2022,11,19,9,30,null,null,[-18000]],[2022,11,19,16,null,null,null,[-18000]]]],null,".INX:INDEXSP"]],"S&P 500"],[null,[["/m/02853rl",[".IXIC","INDEXNASDAQ"],"Nasdaq Composite",1,null,[11146.0625,1.1044922,0.009910241,2,2,4],null,11144.958,null,null,null,[1668809759],"America/New_York",-18000,"/m/02853rl",null,null,[1668809759],null,[[1,[2022,11,19,9,30,null,null,[-18000]],[2022,11,19,16,null,null,null,[-18000]]]],null,".IXIC:INDEXNASDAQ"]],"Nasdaq"],[null,[["/m/04zvfw",["RUT","INDEXRUSSELL"],"Russell 2000 Index",1,null,[1849.7319,10.608643,0.5768315,2,2,2],null,1839.1233,null,null,null,[1668807011],"America/New_York",-18000,"/m/04zvfw",null,null,[1668807011],null,[[1,[2022,11,19,9,30,null,null,[-18000]],[2022,11,19,16,null,null,null,[-18000]]]],null,"RUT:INDEXRUSSELL"]],"Russell"],[null,[["/m/09fld6",["VIX","INDEXCBOE"],"VIX",1,null,[23.12,-0.80999947,-3.3848703,2,2,2],null,23.93,null,null,null,[1668806101],"America/Chicago",-21600,"/m/09fld6",null,null,[1668806101],null,[[1,[2022,11,19,8,30,null,null,[-21600]],[2022,11,19,15,16,null,null,[-21600]]]],null,"VIX:INDEXCBOE"]],null,true]]],[2,[[null,[["/m/0877z",["DAX","INDEXDB"],"DAX PERFORMANCE-INDEX",1,null,[14431.86,165.48047,1.1599331,2,2,2],null,14266.38,null,null,null,[1668792624],"Europe/Berlin",3600,"/m/0877z",null,null,[1668790500],null,[[1,[2022,11,19,9,null,null,null,[3600]],[2022,11,19,20,null,null,null,[3600]]]],null,"DAX:INDEXDB"]],"DAX"],[null,[["/m/02hl6w",["UKX","INDEXFTSE"],"FTSE 100 Index",1,null,[7385.52,38.97998,0.53058964,2,2,2],null,7346.54,null,null,null,[1668789330],"Europe/London",0,"/m/02hl6w",null,null,[1668789330],null,[[1,[2022,11,19,8,null,null,null,[]],[2022,11,19,16,30,null,null,[]]]],null,"UKX:INDEXFTSE"]],"FTSE 100"],[null,[["/m/016j14",["PX1","INDEXEURO"],"CAC 40",1,null,[6644.46,68.33984,1.0392122,2,2,2],null,6576.12,null,null,null,[1668791102],"Europe/Paris",3600,"/m/016j14",null,null,[1668791102],null,[[1,[2022,11,19,9,null,null,null,[3600]],[2022,11,19,17,30,null,null,[3600]]]],null,"PX1:INDEXEURO"]]],[null,[null,[5,"MID Not Found: /m/04ww1p",[]]]],[null,[["/m/07wc6m",["SX5E","INDEXSTOXX"],"EURO STOXX 50",1,null,[3924.84,46.420166,1.1968834,2,2,2],null,3878.42,null,null,null,[1668808983],"Europe/Berlin",3600,"/m/07wc6m",null,null,[1668790800],null,[[1,[2022,11,19,9,null,null,null,[3600]],[2022,11,19,18,null,null,null,[3600]]]],null,"SX5E:INDEXSTOXX"]],"STOXX 50"]]],[3,[[null,[["/m/0b18t",["NI225","INDEXNIKKEI"],"Nikkei 225",1,null,[27899.77,-30.800781,-0.11027624,2,2,2],null,27930.57,null,null,null,[1668752102],"Asia/Tokyo",32400,"/m/0b18t",null,null,[1668752102],null,[[1,[2022,11,20,9,null,null,null,[32400]],[2022,11,20,15,null,null,null,[32400]]]],null,"NI225:INDEXNIKKEI"]]],[null,[["/m/04xk2h",["000001","SHA"],"SSE Composite Index",1,null,[3097.2432,-18.19165,-0.5839201,2,2,2],null,3115.4348,null,null,null,[1668760195],"Asia/Shanghai",28800,"/m/04xk2h",null,null,[1668754830],null,[[1,[2022,11,20,9,30,null,null,[28800]],[2022,11,20,15,null,null,null,[28800]]]],null,"000001:SHA"]],"SSE"],[null,[["/m/01nj9h",["HSI","INDEXHANGSENG"],"Hang Seng Index",1,null,[17992.54,-53.121094,-0.29437047,2,2,2],null,18045.66,null,null,null,[1668758922],"Asia/Hong_Kong",28800,"/m/01nj9h",null,null,[1668758922],null,[[1,[2022,11,20,9,30,null,null,[28800]],[2022,11,20,16,null,null,null,[28800]]]],null,"HSI:INDEXHANGSENG"]],"HSI"],[null,[["/m/046k_p",["SENSEX","INDEXBOM"],"BSE SENSEX",1,null,[61663.48,-87.12109,-0.14108542,2,2,2],null,61750.6,null,null,null,[1668766200],"Asia/Calcutta",19800,"/m/046k_p",null,null,[1668766200],null,[[1,[2022,11,20,9,55,null,null,[19800]],[2022,11,20,15,30,null,null,[19800]]]],null,"SENSEX:INDEXBOM"]],"SENSEX"],[null,[["/m/04t5sp",["NIFTY_50","INDEXNSE"],"NIFTY 50",1,null,[18307.65,-36.25,-0.19761337,2,2,2],null,18343.9,null,null,null,[1668765687],"Asia/Calcutta",19800,"/m/04t5sp",null,null,[1668765687],null,[[1,[2022,11,20,9,15,null,null,[19800]],[2022,11,20,15,30,null,null,[19800]]]],null,"NIFTY_50:INDEXNSE"]],null,true]]],[4,[[null,[["/g/11bvvzh029",null,"EUR / USD",3,null,[1.0345499999999999,0.00009999999999998899,0.00966697278747054,4,6,4],null,1.0344499999999999,null,null,null,[1668886740],null,0,"/g/11bvvzh029",["EUR","USD","Euro","United States Dollar","/m/02l6h","/m/09nqf",1],null,[1668886740],null,[],null,"EUR-USD",null,null,2]]],[null,[["/g/11bvvznqzd",null,"USD / JPY",3,null,[140.345,0,0,4,4,2],null,140.345,null,null,null,[1668886740],null,0,"/g/11bvvznqzd",["USD","JPY","United States Dollar","Japanese yen","/m/09nqf","/m/088n7",1],null,[1668886740],null,[],null,"USD-JPY",null,null,2]]],[null,[["/g/11bvv_1vxq",null,"GBP / USD",3,null,[1.18885,-0.0006500000000000394,-0.054644808743172714,4,5,3],null,1.1895,null,null,null,[1668888060],null,0,"/g/11bvv_1vxq",["GBP","USD","Pound sterling","United States Dollar","/m/01nv4h","/m/09nqf",1],null,[1668887760],null,[],null,"GBP-USD",null,null,2]]],[null,[["/g/11bvvzdz__",null,"USD / CAD",3,null,[1.3409499999999999,0,0,4,4,2],null,1.3409499999999999,null,null,null,[1668886740],null,0,"/g/11bvvzdz__",["USD","CAD","United States Dollar","Canadian dollar","/m/09nqf","/m/0ptk_",1],null,[1668886740],null,[],null,"USD-CAD",null,null,2]]],[null,[["/g/11bvvzl6x6",null,"AUD / USD",3,null,[0.6675,0,0,4,4,2],null,0.6675,null,null,null,[1668886740],null,0,"/g/11bvvzl6x6",["AUD","USD","Australian dollar","United States Dollar","/m/0kz1h","/m/09nqf",1],null,[1668886740],null,[],null,"AUD-USD",null,null,2]]]]],[5,[[null,[["/g/11bvvxp7st",null,"Bitcoin (BTC / USD)",3,null,[16609.8,-70.60000000000218,-0.42325124097744765,2,2,2],null,16680.4,null,null,null,[1668888000],null,0,"/g/11bvvxp7st",["BTC","USD","Bitcoin","United States Dollar","/m/05p0rrx","/m/09nqf",2],null,[1668887708],null,[],null,"BTC-USD",null,null,2]],"Bitcoin"],[null,[["/g/11hd9nkpmd",null,"Ether (ETH / USD)",3,null,[1207.19,-3.6099999999999,-0.2981499834819871,2,2,2],null,1210.8,null,null,null,[1668888001],null,0,"/g/11hd9nkpmd",["ETH","USD","Ether","United States Dollar","/g/11ggdwqycn","/m/09nqf",2],null,[1668887709],null,[],null,"ETH-USD",null,null,2]],"Ethereum"],[null,[["/g/11q8vq34kw",null,"Cardano (ADA / USD)",3,null,[0.3282609744,0.002471213899999991,0.7585302546671018,4,4,2],null,0.3257897605,null,null,null,[1668888036],null,0,"/g/11q8vq34kw",["ADA","USD","Cardano","United States Dollar","/g/11gf2dcwbj","/m/09nqf",2],null,[1668887725],null,[],null,"ADA-USD",null,null,2]],"Cardano"],[null,[["/g/11rg2k9qn0",null,"XRP (XRP / USD)",3,null,[0.38174440190000003,-0.0008805340999999967,-0.23012982614389685,4,5,2],null,0.382624936,null,null,null,[1668887952],null,0,"/g/11rg2k9qn0",["XRP","USD","XRP","United States Dollar","/g/11ggfsh1hd","/m/09nqf",2],null,[1668887801],null,[],null,"XRP-USD",null,null,2]],"XRP"],[null,[["/g/11q8vq3ffv",null,"Dogecoin (DOGE / USD)",3,null,[0.08393857584,-0.0005996899199999933,-0.7093709749174223,4,5,2],null,0.08453826576,null,null,null,[1668888069],null,0,"/g/11q8vq3ffv",["DOGE","USD","Dogecoin","United States Dollar","/m/0zmxk9t","/m/09nqf",2],null,[1668887725],null,[],null,"DOGE-USD",null,null,2]],"Dogecoin"]]],[7,[[null,[["/g/11k6xmv01l",["YMW00","CBOT"],"E-mini Dow (\$5)",4,"USD",[33766,185,0.5509068,2,2,2],null,33581,null,null,null,[1668824710],null,null,"/g/11k6xmv01l",null,null,[1668824710],null,[],null,"YMW00:CBOT",0,"/g/11r76zq4m4",null,"YMW00:CBOT"]],"Dow Futures"],[null,[["/g/11qp47krkt",["ESW00","CME_EMINIS"],"E-mini S&P 500",4,"USD",[3971.5,16.25,0.41084635,2,2,2],null,3955.25,null,null,null,[1668824711],null,null,"/g/11qp47krkt",null,null,[1668824711],null,[],null,"ESW00:CME_EMINIS",0,"/g/11r76zq4m4",null,"ESW00:CME_EMINIS"]],"S&P Futures"],[null,[["/g/11m_l9d5rm",["NQW00","CME_EMINIS"],"E-mini NASDAQ 100",4,"USD",[11711,0.5,0.0042696726,2,2,4],null,11710.5,null,null,null,[1668824715],null,null,"/g/11m_l9d5rm",null,null,[1668824715],null,[],null,"NQW00:CME_EMINIS",0,"/g/11r76zq4m4",null,"NQW00:CME_EMINIS"]],"Nasdaq Futures"],[null,[["/g/11k6xp8txw",["GCW00","COMEX"],"Gold",4,"USD",[1766.699951171875,-11.100098,-0.62437266,2,2,2],null,1777.800049171875,null,null,null,[1668824707],null,null,"/g/11k6xp8txw",null,null,[1668824707],null,[],null,"GCW00:COMEX",0,"/g/11r76_zgg7",null,"GCW00:COMEX"]],"Gold"],[null,[["/g/11qp48vrxw",["CLW00","NYMEX"],"Crude Oil",4,"USD",[80.26000213623047,-1.1399994,-1.4004906,2,2,2],null,81.40000153623046,null,null,null,[1668824711],null,null,"/g/11qp48vrxw",null,null,[1668824711],null,[],null,"CLW00:NYMEX",0,"/g/11ppplysxg",null,"CLW00:NYMEX"]],"Crude Oil"]]]],1],"sideChannel":{}}`; // 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