// 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#"(?m)background=['"](?!\s*(http|ftp):\/\/)\/?(?<filename>[^'"]*)['"]"#).unwrap();
let string = "background=\"image.gif\"
background=\"/image.gif\"
background=\"images/image.gif\"
background=\"http://host/images/directory/image.gif\"
background=\"images/directory/image.gif\"
background='image.gif'
background='/image.gif'
background='images/image.gif'
background='http://host/images/directory/image.gif'
background='/images/directory/image.gif '
background=''
background=' http://host/images/directory/image.gif '
background='test/http://host/images/directory/image.gif'";
let substitution = "/mydir/${filename}";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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/