// 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#"(?:'|")([^"':]*?\.(?:png|jpe?g|gif)[^'"]*(?=[^<]+?>))"#).unwrap();
let string = "TO MATCH:
<img src=\"images/vendor.png\" alt=\"\" > <img src=\"images/vendor.gif\" class=\"box-bg-image\" alt=\"\" >
<img src=\"images/vendor-dp-20141009-flatware.jpg\" class=\"box-bg-image\" alt=\"\" >
<img src=\"images/vendor-flatware.jpeg\" class=\"box\" alt=\"\" >
<img src='images/vendor-flatware.jpeg' class=\"box\" >
<img alt=\"\" src= 'images/vendor-flatware.jpeg' alt=\"\" >
<img src=' images/vendor-flatware.jpg' alt=\"\" >
<img src=' images/vendor-flatware.gif' alt=\"\" >
<img src=' images/vendor-flatware.png ' alt=\"\" >
<img src='../silverware.png' alt=\"\" >
<img class=\"box\" src='images/vendor-watch.png' alt=\"\" >
<img src=\" images/vendor-flatware.jpeg \" alt=\"\" >
< img src=\"images/vendor-flatware.jpeg \" alt=\"\" >
< img src=\"images/vendor-flatware.jpeg \" alt=\"\" >
<img src=\"vendor.gif\" alt=\"\">
NOT TO MATCH:
<img src=\"http://thirdpartycdn.com/image.jpg\">
<img src='http://thirdpartycdn.com/image.png'>
<img src=\"http://thirdpartycdn.com/image.gif\" class=\"box-bg-image\" alt=\"\">
img src=\"images/vendor-flatware.jpeg \"
<img src=\"images/vendorpng\" alt=\"\" >";
// 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/