// 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)request="(?Flagt1>.*?)"(.*?\/(?<Flag2>.*?\?)(\g'1'))"#).unwrap();
let string = "Aug 25 03:07:19 localhost.localdomainASM:unit_hostname=\"bigip1\",management_ip_address=\"192.168.41.200\",management_ip_address_2=\"N/A\",http_class_name=\"/Common/log_to_elk_policy\",web_application_name=\"/Common/log_to_elk_policy\",policy_name=\"/Common/log_to_elk_policy\",policy_apply_date=\"2020-08-10 06:50:39\",violations=\"HTTP protocol compliance failed\",support_id=\"5666478231990524056\",request_status=\"blocked\",response_code=\"0\",ip_client=\"10.43.0.86\",route_domain=\"0\",method=\"GET\",protocol=\"HTTP\",query_string=\"name='\",x_forwarded_for_header_value=\"N/A\",sig_ids=\"N/A\",sig_names=\"N/A\",date_time=\"2020-08-25 03:07:19\",severity=\"Eror\",attack_type=\"Non-browser Client,HTTP Parser Attack\",geo_location=\"N/A\",ip_address_intelligence=\"N/A\",username=\"N/A\",session_id=\"0\",src_port=\"39348\",dest_port=\"80\",dest_ip=\"10.43.0.201\",sub_violations=\"HTTP protocol compliance failed:Bad HTTP version\",virus_name=\"N/A\",violation_rating=\"5\",websocket_direction=\"N/A\",websocket_message_type=\"N/A\",device_id=\"N/A\",staged_sig_ids=\"\",staged_sig_names=\"\",threat_campaign_names=\"N/A\",staged_threat_campaign_names=\"N/A\",blocking_exception_reason=\"N/A\",captcha_result=\"not_received\",microservice=\"N/A\",tap_event_id=\"N/A\",tap_vid=\"N/A\",vs_name=\"/Common/adv_waf_vs\",sig_cves=\"N/A\",staged_sig_cves=\"N/A\",uri=\"/random\",fragment=\"\",request=\"GET /random?name=' or 1 = 1' HTTP/1.1\\r\\n\",response=\"Response logging disabled\"";
// 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/