// 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#"<a[^>]*?href=(?|"([^"]*?)").*?>(.*)\s+("([^"]|"")*")\s+(.*)|("([^"]|"")*")\s+(.*)|("([^"]|"")*")|(.*)\s+(“([^“]|””)*”)\s+(.*)|(“([^“]|””)*”)\s+(.*)|(“([^“]|””)*”)<\/a>"#).unwrap();
let string = "<a href=\"bla\">123 \"this\" is asd</a>
<a href=\"bla\">this should not be captured</a>
<a href=\"bla\">no quotes in anchor text here</a>
<a href=\"bla\">\"445 is in quotes\"</a>
<a href=\"bla\">asd \"blabla\" sometimes</a>
<a href=\"bla\">something with quotes like “blabla” is bad</a>";
// 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/