// 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#"CAT:"((?:[^\"]+|\\.)*)""#).unwrap();
let string = "adlo2gc01-adinbcgw01-16-04-28-12_37_20_1461847501.log:1464846761.422 184 10.221.251.213 TCP_NC_MISS/200 312 GET http://nqs-u33-gc2.redacted.com/ping?time=27.50399999995716&pingTime=5&totalBytes=334203&dataType=0&code=U_19160_3m2x9n8t2tywsyus&diffTime=5335 HTTP/1.1 userid -/nqs-usc1-gc2.redacted.com text/plain http://www.moon.com/audio Mozilla/5.0%20(Windows%20NT%206.1;%20WOW64)%20AppleWebKit/537.36%20(KHTML,%20like%20Gecko)%20Chrome/49.0.2623.112%20Safari/537.36 - --- OIP:114.155.103.27 AIP:215.74.50.9:8882 CAT:\"Business Economy\" NSL:0 OCT:27 ORT:60 XFF:11.51.42.169 PSP:52135 732 SSL-C:none SSL-V:- XVID:-";
// result will be a tuple containing the start and end indices for the first match in the string
let result = regex.captures(string);
let (start, end) = match result {
Some((s, e)) => (s, e),
None => {
// ...
}
};
println!("{}", &string[start, end]);
}
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/