// 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)\d+:\d+\s+(?:.*?",")(?<user>[^"]+)(?:.*?",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?<src>[^"]+)(?:",")(?<dst>[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?<action>[^"]+)(?:.*?",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?<svc>[^"]+)(?:.*?",")(?<application>[^"]+)(?:.*?",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?:[^"]+)(?:",")(?<ruleName>[^"]+)(?:.*?",")"#).unwrap();
let string = "Fri Feb 24 23:45:52 2023\",\"San Francisco->San Francisco->SFO-Servers\",\"Default Department\",\"San Francisco->San Francisco->SFO-Servers\",\"53\",\"53544\",\"53\",\"39474\",\"172.17.129.110\",\"156.154.71.5\",\"104.129.192.104\",\"128.177.129.156\",\"157.130.202.234\",\"0\",\"GRE\",\"Allow\",\"Yes\",\"Yes\",\"No\",\"DNS\",\"dns\",\"UDP\",\"Miscellaneous or Unknown\",\"United States\",\"1\",\"Default Allow\",\"143\",\"86\",\"0\",\"1\",\"1\",\"None\",\"None\",\"None\",\"NA\",\"NA\"";
// 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/