// 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?\battr\s*=\s*"\s*"|\s?\battr\b\s*=(?![^=<>]*")(?!\s*=)|(?<!\<)\s*\battr\b(?![^=<>]*")(?!\s*=)"#).unwrap();
let string = "Nowy test:
<attr attr src=\"/test-image_1.jpg\" attr = \" \" asd=\" q\" attr=\"test-image_1.jpg\" attr qwe=\"as-d q-q\" x=\"attr asd\" >
Poprzedni test:
<img src=\"/test-image_1.jpg\" attr=\"test-image_1\" qwe=\"asd\" attr=>
<img src=\"/test-image_1.jpg\" attr= \"test-image_1\" qwe=\"asd\" attr=\"\">
<img src=\"/test-image_1.jpg\" attr= \"test-image_1\" qwe=\"asd\" attr=\" \">
<img attr=\"a attr b\" src=\"/test-imagalte_1.jpg\" attr qwe=\"asd\" />
<img src=\"/test- alt image_1.jpg\" attr=\"test-image_1\" attr= \"\" qwe=\"asd\" >
<img src=\"/test-image_1.jpg\" attr = \" \" asd=\" q\" attr=\"test-image_1\" attr qwe=\"asd\" >
<img src=\"/test-image_1.jpg\" attr= \"test-image_1\" qwe=\"asd\" attr=\" d \" attr = \" d \" attr= \" d \">
<img attr=\"test-image_1\" qwe=\"asd\" attr >
<img attr=\"test-image_1\" qwe=\"asd\" battr >
<img attr=\"test-image_1\" qwe=\"asd\" attrh >
<img attr=\"test-image_1\" qwe=\"asd\" attr >
<img attr=\"test-image_1\" qwe=\"asd\" attr =>
<img attr=\"test-image_1\" qwe=\"asd\" attr=>
<img attr=\"test-image_1\" qwe=\"asd\" battr = \"\" >
<img attr=\"test-image_1\" qwe=\"asd\" attrh= \" \" >
";
// 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/