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

/
/
g

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#"<tr>\n<td style="background:#(.*)"> .*\n<td> (.*) <...>\n<td> (.*)"#).unwrap(); let string = "<table class=\"sortable wikitable jquery-tablesorter\"> <caption><b>Palette Colors (128)</b> </caption> <thead><tr> <th class=\"headerSort\" tabindex=\"0\" role=\"columnheader button\" title=\"Sort ascending\"> Color </th> <th class=\"headerSort\" tabindex=\"0\" role=\"columnheader button\" title=\"Sort ascending\"> Number </th> <th class=\"headerSort\" tabindex=\"0\" role=\"columnheader button\" title=\"Sort ascending\"> Name </th></tr></thead><tbody> <tr> <td style=\"background:#27462D\"> <span style=\"display: none\">0.366</span> </td> <td> 141 </td> <td> Earth green </td></tr> <tr> <td style=\"background:#506D54\"> <span style=\"display: none\">0.356</span> </td> <td> 301 </td> <td> Slime green </td></tr> <tr> <td style=\"background:#008F9C\"> <span style=\"display: none\">0.514</span> </td> <td> 107 </td> <td> Bright bluish green </td></tr> <tr> <td style=\"background:#1B2A35\"> <span style=\"display: none\">0.571</span> </td> <td> 26 </td> <td> Black </td></tr> <tr> <td style=\"background:#2154B9\"> <span style=\"display: none\">0.611</span> </td> <td> 1012 </td> <td> Deep blue </td></tr> <tr> <td style=\"background:#0010B0\"> <span style=\"display: none\">0.652</span> </td> <td> 303 </td> <td> Dark blue </td></tr> <tr> <td style=\"background:#002060\"> <span style=\"display: none\">0.611</span> </td> <td> 1011 </td> <td> Navy blue </td></tr> <tr> <td style=\"background:#2C651D\"> <span style=\"display: none\">0.299</span> </td> <td> 304 </td> <td> Parsley green </td></tr> <tr> <td style=\"background:#287F47\"> <span style=\"display: none\">0.393</span> </td> <td> 28 </td> <td> Dark green </td></tr> <tr> <td style=\"background:#12EED4\"> <span style=\"display: none\">0.480</span> </td> <td> 1018 </td> <td> Teal </td></tr> <tr> <td style=\"background:#5B5D69\"> <span style=\"display: none\">0.643</span> </td> <td> 302 </td> <td> Smoky grey </td></tr> <tr> <td style=\"background:#527CAE\"> <span style=\"display: none\">0.591</span> </td> <td> 305 </td> <td> Steel blue </td></tr> <tr> <td style=\"background:#335882\"> <span style=\"display: none\">0.589</span> </td> <td> 306 </td> <td> Storm blue </td></tr> <tr> <td style=\"background:#102ADC\"> <span style=\"display: none\">0.645</span> </td> <td> 307 </td> <td> Lapis </td></tr> <tr> <td style=\"background:#3D1585\"> <span style=\"display: none\">0.726</span> </td> <td> 308 </td> <td> Dark indigo </td></tr> <tr> <td style=\"background:#3A7D15\"> <span style=\"display: none\">0.274</span> </td> <td> 1021 </td> <td> Camo </td></tr> <tr> <td style=\"background:#348E40\"> <span style=\"display: none\">0.356</span> </td> <td> 309 </td> <td> Sea green </td></tr> <tr> <td style=\"background:#5B9A4C\"> <span style=\"display: none\">0.301</span> </td> <td> 310 </td> <td> Shamrock </td></tr> <tr> <td style=\"background:#00FFFF\"> <span style=\"display: none\">0.500</span> </td> <td> 1019 </td> <td> Toothpaste </td></tr> <tr> <td style=\"background:#74869D\"> <span style=\"display: none\">0.593</span> </td> <td> 135 </td> <td> Sand blue </td></tr> <tr> <td style=\"background:#6E99CA\"> <span style=\"display: none\">0.589</span> </td> <td> 102 </td> <td> Medium blue </td></tr> <tr> <td style=\"background:#0D69AC\"> <span style=\"display: none\">0.570</span> </td> <td> 23 </td> <td> Bright blue </td></tr> <tr> <td style=\"background:#0000FF\"> <span style=\"display: none\">0.667</span> </td> <td> 1010 </td> <td> Really blue </td></tr> <tr> <td style=\"background:#592259\"> <span style=\"display: none\">0.833</span> </td> <td> 312 </td> <td> Mulberry </td></tr> <tr> <td style=\"background:#1F801D\"> <span style=\"display: none\">0.330</span> </td> <td> 313 </td> <td> Forest green </td></tr> <tr> <td style=\"background:#4B974B\"> <span style=\"display: none\">0.333</span> </td> <td> 37 </td> <td> Bright green </td></tr> <tr> <td style=\"background:#7F8E64\"> <span style=\"display: none\">0.226</span> </td> <td> 1022 </td> <td> Grime </td></tr> <tr> <td style=\"background:#00FF00\"> <span style=\"display: none\">0.333</span> </td> <td> 1020 </td> <td> Lime green </td></tr> <tr> <td style=\"background:#9FF3E9\"> <span style=\"display: none\">0.480</span> </td> <td> 1027 </td> <td> Pastel blue-green </td></tr> <tr> <td style=\"background:#9FA1AC\"> <span style=\"display: none\">0.641</span> </td> <td> 311 </td> <td> Fossil </td></tr> <tr> <td style=\"background:#0989CF\"> <span style=\"display: none\">0.559</span> </td> <td> 315 </td> <td> Electric blue </td></tr> <tr> <td style=\"background:#8C5B9F\"> <span style=\"display: none\">0.787</span> </td> <td> 1023 </td> <td> Lavender </td></tr> <tr> <td style=\"background:#6225D1\"> <span style=\"display: none\">0.726</span> </td> <td> 1031 </td> <td> Royal purple </td></tr> <tr> <td style=\"background:#7B007B\"> <span style=\"display: none\">0.833</span> </td> <td> 316 </td> <td> Eggplant </td></tr> <tr> <td style=\"background:#789082\"> <span style=\"display: none\">0.403</span> </td> <td> 151 </td> <td> Sand green </td></tr> <tr> <td style=\"background:#7C9C6B\"> <span style=\"display: none\">0.276</span> </td> <td> 317 </td> <td> Moss </td></tr> <tr> <td style=\"background:#8AAB85\"> <span style=\"display: none\">0.311</span> </td> <td> 318 </td> <td> Artichoke </td></tr> <tr> <td style=\"background:#B9C4B1\"> <span style=\"display: none\">0.263</span> </td> <td> 319 </td> <td> Sage green </td></tr> <tr> <td style=\"background:#AFDDFF\"> <span style=\"display: none\">0.571</span> </td> <td> 1024 </td> <td> Pastel light blue </td></tr> <tr> <td style=\"background:#9FADC0\"> <span style=\"display: none\">0.596</span> </td> <td> 314 </td> <td> Cadet blue </td></tr> <tr> <td style=\"background:#04AFEC\"> <span style=\"display: none\">0.544</span> </td> <td> 1013 </td> <td> Cyan </td></tr> <tr> <td style=\"background:#B480FF\"> <span style=\"display: none\">0.735</span> </td> <td> 1006 </td> <td> Alder </td></tr> <tr> <td style=\"background:#A75E9B\"> <span style=\"display: none\">0.861</span> </td> <td> 321 </td> <td> Lilac </td></tr> <tr> <td style=\"background:#7B2F7B\"> <span style=\"display: none\">0.833</span> </td> <td> 322 </td> <td> Plum </td></tr> <tr> <td style=\"background:#6B327C\"> <span style=\"display: none\">0.795</span> </td> <td> 104 </td> <td> Bright violet </td></tr> <tr> <td style=\"background:#C1BE42\"> <span style=\"display: none\">0.163</span> </td> <td> 1008 </td> <td> Olive </td></tr> <tr> <td style=\"background:#A4BD47\"> <span style=\"display: none\">0.202</span> </td> <td> 119 </td> <td> Br. yellowish green </td></tr> <tr> <td style=\"background:#94BE81\"> <span style=\"display: none\">0.281</span> </td> <td> 323 </td> <td> Olivine </td></tr> <tr> <td style=\"background:#A8BD99\"> <span style=\"display: none\">0.264</span> </td> <td> 324 </td> <td> Laurel green </td></tr> <tr> <td style=\"background:#DFDFDE\"> <span style=\"display: none\">0.167</span> </td> <td> 325 </td> <td> Quill grey </td></tr> <tr> <td style=\"background:#CACBD1\"> <span style=\"display: none\">0.643</span> </td> <td> 320 </td> <td> Ghost grey </td></tr> <tr> <td style=\"background:#80BBDB\"> <span style=\"display: none\">0.559</span> </td> <td> 11 </td> <td> Pastel Blue </td></tr> <tr> <td style=\"background:#B1A7FF\"> <span style=\"display: none\">0.686</span> </td> <td> 1026 </td> <td> Pastel violet </td></tr> <tr> <td style=\"background:#FF66CC\"> <span style=\"display: none\">0.889</span> </td> <td> 1016 </td> <td> Pink </td></tr> <tr> <td style=\"background:#FF00BF\"> <span style=\"display: none\">0.875</span> </td> <td> 1032 </td> <td> Hot pink </td></tr> <tr> <td style=\"background:#AA00AA\"> <span style=\"display: none\">0.833</span> </td> <td> 1015 </td> <td> Magenta </td></tr> <tr> <td style=\"background:#970000\"> <span style=\"display: none\">0.000</span> </td> <td> 327 </td> <td> Crimson </td></tr> <tr> <td style=\"background:#FFAF00\"> <span style=\"display: none\">0.114</span> </td> <td> 1017 </td> <td> Deep orange </td></tr> <tr> <td style=\"background:#FFFF00\"> <span style=\"display: none\">0.167</span> </td> <td> 1009 </td> <td> New Yeller </td></tr> <tr> <td style=\"background:#A1C48C\"> <span style=\"display: none\">0.271</span> </td> <td> 29 </td> <td> Medium green </td></tr> <tr> <td style=\"background:#B1E5A6\"> <span style=\"display: none\">0.304</span> </td> <td> 328 </td> <td> Mint </td></tr> <tr> <td style=\"background:#CCFFCC\"> <span style=\"display: none\">0.333</span> </td> <td> 1028 </td> <td> Pastel green </td></tr> <tr> <td style=\"background:#E5E4DF\"> <span style=\"display: none\">0.139</span> </td> <td> 208 </td> <td> Light stone grey </td></tr> <tr> <td style=\"background:#B4D2E4\"> <span style=\"display: none\">0.562</span> </td> <td> 45 </td> <td> Light blue </td></tr> <tr> <td style=\"background:#98C2DB\"> <span style=\"display: none\">0.562</span> </td> <td> 329 </td> <td> Baby blue </td></tr> <tr> <td style=\"background:#FF98DC\"> <span style=\"display: none\">0.890</span> </td> <td> 330 </td> <td> Carnation pink </td></tr> <tr> <td style=\"background:#FF5959\"> <span style=\"display: none\">0.000</span> </td> <td> 331 </td> <td> Persimmon </td></tr> <tr> <td style=\"background:#FF0000\"> <span style=\"display: none\">0.000</span> </td> <td> 1004 </td> <td> Really red </td></tr> <tr> <td style=\"background:#C4281C\"> <span style=\"display: none\">0.012</span> </td> <td> 21 </td> <td> Bright red </td></tr> <tr> <td style=\"background:#750000\"> <span style=\"display: none\">0.000</span> </td> <td> 332 </td> <td> Maroon </td></tr> <tr> <td style=\"background:#EFB838\"> <span style=\"display: none\">0.117</span> </td> <td> 333 </td> <td> Gold </td></tr> <tr> <td style=\"background:#F5CD30\"> <span style=\"display: none\">0.133</span> </td> <td> 24 </td> <td> Bright yellow </td></tr> <tr> <td style=\"background:#F8D96D\"> <span style=\"display: none\">0.129</span> </td> <td> 334 </td> <td> Daisy orange </td></tr> <tr> <td style=\"background:#FDEA8D\"> <span style=\"display: none\">0.138</span> </td> <td> 226 </td> <td> Cool yellow </td></tr> <tr> <td style=\"background:#FFFFCC\"> <span style=\"display: none\">0.167</span> </td> <td> 1029 </td> <td> Pastel yellow </td></tr> <tr> <td style=\"background:#E7E7EC\"> <span style=\"display: none\">0.667</span> </td> <td> 335 </td> <td> Pearl </td></tr> <tr> <td style=\"background:#C7D4E4\"> <span style=\"display: none\">0.592</span> </td> <td> 336 </td> <td> Fog </td></tr> <tr> <td style=\"background:#E0B2D0\"> <span style=\"display: none\">0.891</span> </td> <td> 342 </td> <td> Mauve </td></tr> <tr> <td style=\"background:#D490BD\"> <span style=\"display: none\">0.890</span> </td> <td> 343 </td> <td> Sunrise </td></tr> <tr> <td style=\"background:#BE6862\"> <span style=\"display: none\">0.011</span> </td> <td> 338 </td> <td> Terra Cotta </td></tr> <tr> <td style=\"background:#A34B4B\"> <span style=\"display: none\">0.000</span> </td> <td> 1007 </td> <td> Dusty Rose </td></tr> <tr> <td style=\"background:#562424\"> <span style=\"display: none\">0.000</span> </td> <td> 339 </td> <td> Cocoa </td></tr> <tr> <td style=\"background:#D5733D\"> <span style=\"display: none\">0.059</span> </td> <td> 1005 </td> <td> Neon orange </td></tr> <tr> <td style=\"background:#DA8541\"> <span style=\"display: none\">0.074</span> </td> <td> 106 </td> <td> Bright orange </td></tr> <tr> <td style=\"background:#F1E7C7\"> <span style=\"display: none\">0.127</span> </td> <td> 340 </td> <td> Wheat </td></tr> <tr> <td style=\"background:#FEF3BB\"> <span style=\"display: none\">0.139</span> </td> <td> 341 </td> <td> Buttermilk </td></tr> <tr> <td style=\"background:#F8F8F8\"> <span style=\"display: none\">0.000</span> </td> <td> 1001 </td> <td> Institutional white </td></tr> <tr> <td style=\"background:#F2F3F3\"> <span style=\"display: none\">0.500</span> </td> <td> 1 </td> <td> White </td></tr> <tr> <td style=\"background:#E8BAC8\"> <span style=\"display: none\">0.949</span> </td> <td> 9 </td> <td> Light reddish violet </td></tr> <tr> <td style=\"background:#FFC9C9\"> <span style=\"display: none\">0.000</span> </td> <td> 1025 </td> <td> Pastel orange </td></tr> <tr> <td style=\"background:#FF9494\"> <span style=\"display: none\">0.000</span> </td> <td> 337 </td> <td> Salmon </td></tr> <tr> <td style=\"background:#965555\"> <span style=\"display: none\">0.000</span> </td> <td> 344 </td> <td> Tawny </td></tr> <tr> <td style=\"background:#744747\"> <span style=\"display: none\">0.000</span> </td> <td> 345 </td> <td> Rust </td></tr> <tr> <td style=\"background:#AA5500\"> <span style=\"display: none\">0.083</span> </td> <td> 1014 </td> <td> CGA brown </td></tr> <tr> <td style=\"background:#E29B40\"> <span style=\"display: none\">0.094</span> </td> <td> 105 </td> <td> Br. yellowish orange </td></tr> <tr> <td style=\"background:#D3BE96\"> <span style=\"display: none\">0.109</span> </td> <td> 346 </td> <td> Cashmere </td></tr> <tr> <td style=\"background:#E2DCBC\"> <span style=\"display: none\">0.140</span> </td> <td> 347 </td> <td> Khaki </td></tr> <tr> <td style=\"background:#EDEAEA\"> <span style=\"display: none\">0.000</span> </td> <td> 348 </td> <td> Lily white </td></tr> <tr> <td style=\"background:#E9DADA\"> <span style=\"display: none\">0.000</span> </td> <td> 349 </td> <td> Seashell </td></tr> <tr> <td style=\"background:#FFCC99\"> <span style=\"display: none\">0.083</span> </td> <td> 1030 </td> <td> Pastel brown </td></tr> <tr> <td style=\"background:#EAB892\"> <span style=\"display: none\">0.072</span> </td> <td> 125 </td> <td> Light orange </td></tr> <tr> <td style=\"background:#DA867A\"> <span style=\"display: none\">0.021</span> </td> <td> 101 </td> <td> Medium red </td></tr> <tr> <td style=\"background:#883E3E\"> <span style=\"display: none\">0.000</span> </td> <td> 350 </td> <td> Burgandy </td></tr> <tr> <td style=\"background:#694028\"> <span style=\"display: none\">0.062</span> </td> <td> 192 </td> <td> Reddish brown </td></tr> <tr> <td style=\"background:#BC9B5D\"> <span style=\"display: none\">0.109</span> </td> <td> 351 </td> <td> Cork </td></tr> <tr> <td style=\"background:#C7AC78\"> <span style=\"display: none\">0.110</span> </td> <td> 352 </td> <td> Burlap </td></tr> <tr> <td style=\"background:#CABFA3\"> <span style=\"display: none\">0.120</span> </td> <td> 353 </td> <td> Beige </td></tr> <tr> <td style=\"background:#BBB3B2\"> <span style=\"display: none\">0.019</span> </td> <td> 354 </td> <td> Oyster </td></tr> <tr> <td style=\"background:#CDCDCD\"> <span style=\"display: none\">0.000</span> </td> <td> 1002 </td> <td> Mid gray </td></tr> <tr> <td style=\"background:#D7C59A\"> <span style=\"display: none\">0.117</span> </td> <td> 5 </td> <td> Brick yellow </td></tr> <tr> <td style=\"background:#CC8E69\"> <span style=\"display: none\">0.062</span> </td> <td> 18 </td> <td> Nougat </td></tr> <tr> <td style=\"background:#7C5C46\"> <span style=\"display: none\">0.068</span> </td> <td> 217 </td> <td> Brown </td></tr> <tr> <td style=\"background:#6C584B\"> <span style=\"display: none\">0.066</span> </td> <td> 355 </td> <td> Pine Cone </td></tr> <tr> <td style=\"background:#A0844F\"> <span style=\"display: none\">0.109</span> </td> <td> 356 </td> <td> Fawn brown </td></tr> <tr> <td style=\"background:#957977\"> <span style=\"display: none\">0.011</span> </td> <td> 153 </td> <td> Sand red </td></tr> <tr> <td style=\"background:#958988\"> <span style=\"display: none\">0.013</span> </td> <td> 357 </td> <td> Hurricane grey </td></tr> <tr> <td style=\"background:#ABA89E\"> <span style=\"display: none\">0.128</span> </td> <td> 358 </td> <td> Cloudy grey </td></tr> <tr> <td style=\"background:#AF9483\"> <span style=\"display: none\">0.064</span> </td> <td> 359 </td> <td> Linen </td></tr> <tr> <td style=\"background:#966766\"> <span style=\"display: none\">0.003</span> </td> <td> 360 </td> <td> Copper </td></tr> <tr> <td style=\"background:#A05F35\"> <span style=\"display: none\">0.065</span> </td> <td> 38 </td> <td> Dark orange </td></tr> <tr> <td style=\"background:#564236\"> <span style=\"display: none\">0.063</span> </td> <td> 361 </td> <td> Dirt brown </td></tr> <tr> <td style=\"background:#7E683F\"> <span style=\"display: none\">0.108</span> </td> <td> 362 </td> <td> Bronze </td></tr> <tr> <td style=\"background:#635F62\"> <span style=\"display: none\">0.875</span> </td> <td> 199 </td> <td> Dark stone grey </td></tr> <tr> <td style=\"background:#A3A2A5\"> <span style=\"display: none\">0.722</span> </td> <td> 194 </td> <td> Medium stone grey </td></tr> <tr> <td style=\"background:#69665C\"> <span style=\"display: none\">0.128</span> </td> <td> 363 </td> <td> Flint </td></tr> <tr> <td style=\"background:#5A4C42\"> <span style=\"display: none\">0.069</span> </td> <td> 364 </td> <td> Dark taupe </td></tr> <tr> <td style=\"background:#6A3909\"> <span style=\"display: none\">0.082</span> </td> <td> 365 </td> <td> Burnt Sienna </td></tr> <tr> <td style=\"background:#111111\"> <span style=\"display: none\">0.000</span> </td> <td> 1003 </td> <td> Really black </td></tr> </tbody><tfoot></tfoot></table>"; // 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/