// 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)^(?=.*\b(HDR(10)?)\b)(?=.*\b(DV|DoVi)\b)").unwrap();
let string = "# Match
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DoVi HDR HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR DoVi HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR10 DoVi HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DoVi HDR10 HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DV.HDR10 HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR10.DV HEVC-RlsGrp
# Don't Match
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DV HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos DoVi HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR HEVC-RlsGrp
Movie 2022 IMAX 2160p DSNP WEB-DL TrueHD 7.1 Atmos HDR10 HEVC-RlsGrp";
// 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/