// 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){"time": "([^"]+)", "remote_addr": "([^"]+)", "x_forward_for": "([^"]+)", "request_id": "([^"]+)", "remote_user": "([^"]+)", "bytes_sent": (\d+), "request_time": ([\d.]+), "status": (\d+), "vhost": "([^"]+)", "request_proto": "([^"]+)", "path": "([^"]+)", "request_query": "([^"]+)", "request_length": (\d+), "duration": ([\d.]+),"method": "([^"]+)", "http_referrer": "([^"]+)", "http_user_agent": "([^"]+)", "proxy_upstream_name": "([^"]+)", "service_name": "([^"]+)"}"#).unwrap();
let string = "{\"time\": \"2023-09-02T13:06:07+00:00\", \"remote_addr\": \"127.0.0.6\", \"x_forward_for\": \"127.0.0.6\", \"request_id\": \"08aaccca-f6e7-4480-9f7b-d157f1dce306\", \"remote_user\": \"-\", \"bytes_sent\": 277, \"request_time\": 0.386, \"status\": 200, \"vhost\": \"10.160.96.120\", \"request_proto\": \"HTTP/1.1\", \"path\": \"/savethesale/v1/validateemployee/243060/couponmgmt\", \"request_query\": \"-\", \"request_length\": 423, \"duration\": 0.384,\"method\": \"GET\", \"http_referrer\": \"-\", \"http_user_agent\": \"PostmanRuntime/7.32.3\", \"proxy_upstream_name\": \"ns-sell-save-the-sale-9097\", \"service_name\": \"save-the-sale\"}";
// 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/