// 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)^data:(?:(?<mime>[^;,]+);?)?(?:;charset=(?<charset>[^;,]+);?)?(?:;(?<base64>base64);?)?,(?<content>.*)$").unwrap();
let string = "data:text/html base64,PGgxPua1i+ivlTwvaDE+
data:text/html;,PGgxPua1i+ivlTwvaDE+
data:text/html;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=big5;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=utf-16le;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=utf-16be;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=gbk;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=latin1;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=utf8;base64,PGgxPua1i+ivlTwvaDE+
data:text/plain;charset=utf8;base64,PGgxPua1i+ivlTwvaDE+
data:text/html;charset=gbk;base64,PGgxPrLiytQ8L2gxPg==
data:text/html;base64,测试
data:text/html,%E6%B5%8B%E8%AF%95
";
let substitution = "📦mime: 『$1』 📦charset: 『$2』 📦content: 『$4』 《$3》\\n---------------------------------------------------------------------------------";
// 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/