// 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)^\"(?<timestart>\d{4}\/\d{2}\/\d{2}\s\d{2}\:\d{2}\:\d{2})?([\"|\,]*)?(?<recipient>[\w|\.|\-|_|\d]*@(?<domainimpacted>[\w|\.|\-|_|\d]*))?([\"|\,]*)?(?<subject>[\w|\s|\#|\@|\±|\§|\d|\!|\$|\%|\^|\,|\.|\(|\)|\[|\]|\{|\}|\:|\-|\&|\*|\'|\=|\+]*)?([\"|\,]*)?(?<action>\w*)?([\"|\,]*)?(?<sender>[\w|\.|\-|_|\d]*@(?<domainorigin>[\w|\.|\-|_|\d]*))?([\"|\,]*)?(?<account>[\w|\.|\-|_|\d|\,|\s]*)?([\"|\,]*)?(?<status>[\w|\.|\-|_|\d]*)?([\"|\,]*)?(?<object>[\w|\.|\-|_|\d]*)?([\"|\,]*)?(?<reason>[\w|\.|\-|_|\d]*)?([\"|\,]*)?(?<policy>[\w|\.|\-|_|\d]*)?([\"|\,]*)?(?<objecttype>[\w|\.|\-|_|\d|\s|\,]*)?([\"|\,]*)?(?<size>[\d]*)?([\"|\,]*)?(?<command>[\w|\.|\-|_|\d]*)?([\"|\,]*)?(?<objectname>[\w|\.|\-|_|\d]*)?([\"|\,]*)?(?<threatname>[\w|\.|\-|_|\d]*)?([\"|\,]*)?"#).unwrap();
let string = "\"2020/04/07 08:26:21\",\"shabbir.jafri@mcb.com.pk\",\"REQUIRED ORIGINAL LC # 0054ILS200@!±026, MCB to MCB.(NOVATEX)\",\"Accepted\",\"ppta.treasury@lottechem.pk\",\"None\",\"None\",\"None\",\"Clean\",\"None\",\"Portable Document Format\",\"131835\",\"None\",\"None\",\"None\"
\"2020/04/05 15:20:02\",\"telecom.support@mcb.com.pk\",\"MCB14005 Lhr: Gulberg Gelria - ATM Down\",\"Accepted\",\"Abbas.Zaheer@ncr.com\",\"Zaheer, Abbas\",\"Whitelisted\",\"None\",\"Spam\",\"None\",\"JPEG Interchange Format,JPEG Interchange Format,JPEG Interchange Format,JPEG Interchange Format\",\"18837\",\"None\",\"None\",\"None\"
\"2020/04/07 08:27:02\",\"narain.das@mcb.com.pk\",\"New Doc 2020-04-07 13.25.15 - Page 1\",\"Accepted\",\"naraindas24@gmail.com\",\"Narain Das\",\"None\",\"None\",\"Clean\",\"None\",\"Portable Document Format\",\"397990\",\"None\",\"None\",\"None\"";
// 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/