// 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#"(?mi)<a(?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*\s*(?:(value)\s*=\s*(?:"([^"]*)"))(?:\s+[\w:-]+(?:\s*=\s*(?:(?:"[^"]*")|(?:'[^']*')|[^>\s]+))?)*\s*>"#).unwrap();
let string = "<p>
<a readonly href=\"blah\" value=\"page({page: '23032092'})\" data-attr data-value='he-asd90lo' data-value-two=\"2\">Link Here</a>
<a readonly href=\"blah\" value=\"page({page: 23032092})\" data-attr data-value='he-asd90lo' data-value-two=\"2\" ng-if=\"abc 0 && abc 0\">
<a></a>
<a ></a>
<a readonly
></a>
<a
></a>
(?:\\s*=\\s*(?:(?:\"[^\"]*\")|(?:'[^']*')))
</p>";
// 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/