// 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#"(?i)<img.+src=['"](?P<src>.+?)['"].*>"#).unwrap();
let string = "<img class=\"fr-draggable fr-fil fr-dii\" src=\"//website.com/admin/img/uploads/wysiwyg/ORG_1475303208-troubador1.png\" style=\"width: 300px;\" alt=\"\">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vehicula ligula vitae malesuada mollis. Donec tristique augue ut ipsum lacinia rhoncus. Donec a massa ut urna euismod imperdiet. Integer porta efficitur mollis. Vivamus mollis elementum placerat. Praesent viverra felis sem, at fringilla nulla semper ac. Nunc augue velit, tincidunt sed feugiat quis, dapibus eu est. Duis quis varius quam. Nullam quis ultrices lectus.<img class=\"fr-draggable fr-fir fr-dii\" src=\"//website.com/admin/img/uploads/wysiwyg/ORG_1475303256-troubador2.png\" style=\"width: 300px;\"><strong>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla vehicula ligula vitae malesuada mollis. Donec tristique augue ut ipsum lacinia rhoncus. Donec a massa ut urna euismod imperdiet. Integer porta efficitur mollis. Vivamus mollis elementum placerat. Praesent viverra felis sem, at fringilla nulla semper ac. Nunc augue velit, tincidunt sed feugiat quis, dapibus eu est. Duis quis varius quam. Nullam quis ultrices lectus.</strong>";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
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/