// 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#"(?mix)<img\b(?=\s)(?=(?:[^>=]|='[^']*'|="[^"]*"|=[^'"][^\s>]*)*?\ssrc=['"]([^"]*)['"]?)(?:[^>=]|='[^']*'|="[^"]*"|=[^'"\s]*)*"\s?\/?> "#).unwrap();
let string = "<img onmouseover=' if ( 6 > 3 { funSwap(\" src=\"NotTheDroidYourLookingFor.jpg\", 6 > 3 ) } ; ' src=\"http://website/ThisIsTheDroidYourLookingFor.jpeg\" onload=\"img_onload(this);\" onerror=\"img_onerror(this);\" data-pid=\"jihgfedcba\" data-imagesize=\"ppew\" />
some text
<img src=\"http://website/someurl.jpeg\" onload=\"img_onload(this);\" />
more text
<img src=\"https://en.wikipedia.org/wiki/File:BH_LMC.png\"/>";
// 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/