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

// include the latest version of the regex crate in your Cargo.toml extern crate regex; use regex::Regex; fn main() { let regex = Regex::new(r#"(?m)\[null,\[\["\/m\/.+?],"(?<name>[^"]+)".+?\[(?<price>[^,]+),(?<value>[^,]+),(?<percentage>[^,]+).+?\]."(?<region>[^\/]+).+?null,"(?<stock>[^"]+)"#).unwrap(); let string = "{\"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\":{}}"; // result will be an iterator over tuples containing the start and end indices for each match in the string let result = regex.captures_iter(string); for mat in result { println!("{:?}", mat); } }

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 Rust, please visit: https://docs.rs/regex/latest/regex/