// 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#"^([^\s]+) ([^\s]+) ([^\s]+) \[([\w:/]+\s[+\-]\d{4})\] "(\S+) /.*() ([^\\"]+)" (\d{3}) (\S+)"#).unwrap();
let string = "ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:43:57 -0400] \"GET /images/ksclogo-medium.gif HTTP/1.0 \" 200 5866
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:07 -0400] \"GET /images/NASA-logosmall.gif HTTP/1.0 \" 200 786
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:11 -0400] \"GET /images/MOSAIC-logosmall.gif HTTP/1.0 \" 200 363
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:13 -0400] \"GET /images/USA-logosmall.gif HTTP/1.0 \" 200 234
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:43:39 -0400] \"GET / HTTP/1.0 \" 200 7131
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:15 -0400] \"GET /images/WORLD-logosmall.gif HTTP/1.0 \" 200 669
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:31 -0400] \"GET /shuttle/countdown/ HTTP/1.0 \" 200 4673
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:44:41 -0400] \"GET /shuttle/missions/sts-69/count69.gif HTTP/1.0 \" 200 46053
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:34 -0400] \"GET /images/KSC-logosmall.gif HTTP/1.0 \" 200 1204
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:46 -0400] \"GET /cgi-bin/imagemap/countdown69?293,287 HTTP/1.0 \" 302 85
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:48 -0400] \"GET /htbin/cdt_main.pl HTTP/1.0 \" 200 3714
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:45:52 -0400] \"GET /shuttle/countdown/images/countclock.gif HTTP/1.0 \" 200 13994
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:22 -0400] \"GET / HTTP/1.0 \" 200 7131
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:29 -0400] \"GET /images/ksclogo-medium.gif HTTP/1.0 \" 200 5866
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:35 -0400] \"GET /images/NASA-logosmall.gif HTTP/1.0 \" 200 786
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:37 -0400] \"GET /images/MOSAIC-logosmall.gif HTTP/1.0 \" 200 363
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:38 -0400] \"GET /images/USA-logosmall.gif HTTP/1.0 \" 200 234
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:46:40 -0400] \"GET /images/WORLD-logosmall.gif HTTP/1.0 \" 200 669
ix-li1-14.ix.netcom.com - - [08/Aug/1995:14:47:41 -0400] \"GET /shuttle/missions/sts-70/mission-sts-70.html HTTP/1.0 \" 200 20304
ix-sac6-20.ix.netcom.com - - [08/Aug/1995:14:47:48 -0400] \"GET /shuttle/countdown/count.html HTTP/1.0 \" 200 73231";
// 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/