// 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"(?mi)^(?:(?:(?:mdmcomm|checkin)\.(?:eu|us|jp)|(?:e(?:ba|df|pns)|msp|identity|repository|(?:(?:eu|us|jp)02\.)?protect|(?:(?:eu|us|jp)\.)?mdm)|(?:.*\.a\.ecaserver))|(redirector))\.eset\.(?(1)systems$|com$)?").unwrap();
let string = "eba.eset.com
edf.eset.com
epns.eset.com
msp.eset.com
identity.eset.com
repository.eset.com
*.a.ecaserver.eset.com
protect.eset.com
eu02.protect.eset.com
us02.protect.eset.com
jp02.protect.eset.com
redirector.eset.systems
eu.mdm.eset.com
us.mdm.eset.com
jp.mdm.eset.com
mdm.eset.com
checkin.eu.eset.com
checkin.us.eset.com
checkin.jp.eset.com
mdmcomm.eu.eset.com
mdmcomm.us.eset.com
mdmcomm.jp.eset.com
";
// 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/