// 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#"([^ ]*) ([^ ]*) ([^ ]*) ([^ ]*):([0-9]*) ([^ ]*)[:-]([0-9]*) ([-.0-9]*) ([-.0-9]*) ([-.0-9]*) (|[-0-9]*) (-|[-0-9]*) ([-0-9]*) ([-0-9]*) \"([^ ]*) (.*) (- |[^ ]*)\" \"([^\"]*)\" ([A-Z0-9-_]+) ([A-Za-z0-9.-]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^\"]*)\" ([-.0-9]*) ([^ ]*) \"([^\"]*)\" \"([^\"]*)\" \"([^ ]*)\" \"([^\s]+?)\" \"([^\s]+)\" \"([^ ]*)\" \"([^ ]*)\""#).unwrap();
let string = "2023-03-05T23:00:35.803942Z download 46.20.32.146:37117 10.0.28.135:81 0.000034 0.030235 0.000039 200 200 0 12719 \"GET https://download.cylance.com:443/updates/CylanceDetectUpdater/3.1.1000.48/Cylance.Host.Versions.dll?AWSAccessKeyId=ASIAXGEMKUZOLIJU7ANT&Expires=1678143581&response-cache-control=No-cache&x-amz-security-token=FwoGZXIvYXdzEF4aDKZOKkZNWIHzKxCTuSKCAc9SM0qqQ4Cyq5EN69MjRSP4KklVkfKe3l%2FP9auMBc0GcenWYD5MSbBSpabg%2FHhg8iz9KkEEkHtceAp1hIQE25i%2BZldQHjEIrHXyDJZKMh4SK2i7AUegHhrh0bOzAstDH9PRRqm%2FUWbLOm5X26NHcQtA%2FFVJSOl8T9CE%2BxxGOFwmR38ov%2BuToAYyKGAsGRb9noEAnd2jZZub%2B8kUU5ipH5u9%2Ff79%2BFuMSu4SOWaJ3utlz2Q%3D&Signature=pktaTIw8ucS5fcQYGq40zAge6JE%3D HTTP/1.1\" \"-\" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2";
// 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/