// 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#"([^\s=]+)=('?)("?)([^>"']*)\2\3"#).unwrap();
let string = " style=\"width: 462px;\" src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAg4AAALoCAYAAAAQpn2mAAAABHNCSVQICAgIfAhkiAAAABl0RVh0U29mdHdhcmUAZ25vbWUtc2NyZWVuc2hvdO8Dv4AACAASURBVHic7L15fNTVufj/PjOTyWSyTfaEJBD2EJBNQFQEtFVRXMD7VQG1dfu2tLW92t77unaxam+t9nbTXze9tW61Vdqvgre9FXcqUHFBFiUEkX0PgSQkmf1zzu+Pzz6ZhBBwg3l4kZn5fM7yPM8553me85znnAMZyEAGMpCBDGQgAxnIQAYykIEMZCADGchABjKQgQxkIAMZyEAGMpCBDGQgAxnIQAYykIEMZCADGchABjKQgQxkIAMZyEAGMpCBDGQgAxnIQAYykIEMZCADGchABjKQgQxkIAMZyEAGMpCBDGQgAxnIQAYykIEMZCADGchABjKQgQxkIAMZyEAGMpCBDGQgAxnIQAqIiy66SDXM/SW7DyUQgEIBAiFAKTOZQn8p7N/OQhB6PgFCgUI43ull6mmwyhUolFWJMB=' data-filename=\"Screenshot from 2016-02-09 21:54:47.png\"
<tr><td><A HREF=\"brackets.html\" TARGET=\"_top\">Capturing group</A></td>
<td><TT>(regex)</TT></td>
<td>Parentheses group the regex between them. They capture the text matched by the regex inside them into a numbered group that can be reused with a numbered backreference. They allow you to apply regex operators to the entire grouped regex.</td>
<td><TT CLASS=code><SPAN CLASS=\"regexnest1\">(</SPAN><SPAN CLASS=\"regexplain\">abc</SPAN><SPAN CLASS=\"regexnest1\">)</SPAN><SPAN CLASS=\"regexspecial\">{3}</SPAN></TT> matches <TT CLASS=match>abcabcabc</TT>. First group matches <TT CLASS=match>abc</TT>.</td>
<td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>ECMA<br>extended<br>egrep<br>awk</td><td class=yes>YES</td><td>no</td><td class=yes>YES</td><td>no</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td><td class=yes>YES</td></tr>
<tr><td><A HREF=\"brackets.html\" TARGET=\"_top\">Capturing group</A></td>
<td><TT>\\(regex\\)</TT></td>
<td>Escaped parentheses group the regex between them. They capture the text matched by the regex inside them into a numbered group that can be reused with a numbered backreference. They allow you to apply regex operators to the entire grouped regex.</td>
<td><TT CLASS=code><SPAN CLASS=\"regexnest1\">\\(</SPAN><SPAN CLASS=\"regexplain\">abc</SPAN><SPAN CLASS=\"regexnest1\">\\)</SPAN><SPAN CLASS=\"regexplain\">{3}</SPAN></TT> matches <TT CLASS=match>abcabcabc</TT>. First group matches <TT CLASS=match>abc</TT>.</td>
<td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td>no</td><td class=yes>basic<br>grep</td><td>no</td><td class=yes>YES</td><td>no</td><td class=yes>YES</td><td>no</td><td>no</td><td>no</td><td>no</td></tr>
<tr><td><A HREF=\"brackets.html\" TARGET=\"_top\">Non-capturing group</A></td>
";
// 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/