// 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)(?(DEFINE)(?'Row'(?:<\/td)?>[^>]+>))^ +<tr class="clickable" data-id="(?<AccountID>[^"]+)" data-jobid=\"(?<JobID>[^\"]+)\"(?P>Row)(?<InvoiceID>[^<]+)(?P>Row)(?<Date>[^ ]+)\n +(?P>Row)(?<Status>[^<]+)(?P>Row)(?<Type>[^<]+)(?P>Row)(?<Total>[^<]+)(?P>Row)(?<Balance>[^<]+)(?P>Row)(?<Paid>[^<]+)(?P>Row)(?<Technician>[^<]+)(?P>Row)"#).unwrap();
let string = "
<th>Technician</th>
<th></th>
</tr>
</thead>
<tbody>
<tr class=\"clickable\" data-id=\"277928\" data-jobid=\"3100878\">
<td>3142140</td>
<td>07/21/2017
</td>
<td>Complete</td>
<td>Initial</td>
<td>$309.00</td>
<td>$316.76</td>
<td>No</td>
<td>John Smith</td>
<td>
<div class=\"btn-group pull-right\">
<a class=\"btn btn-small dropdown-toggle\" data-toggle=\"dropdown\" href=\"javascript:;\">Action <span class=\"caret\"></span></a>
<ul class=\"dropdown-menu\">";
// 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/