// 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"(\d{8} ..:..:..).*orderID:\[(.*?)\].*sid:\[(.*?)\].*ticker:\[(.*?)\].*venue:\[(.*?)\].*lastFill:\[([1-9][0-9]*)\]").unwrap();
let string = "20160209 16:30:01:106.038 LOG_INFO Cancel rejected orderID:[QT_10581977_8] fixCancelID:[QT_10581977_8-C1] appType:[AGENCY_EQUITY] sid:[4550] ticker:[DLN LN] venue:[DARKBARC] side:[BUY] quantity:[235] disp:[0] min:[0] limit:[2952.000000] ct:[HYBRID] share:[0] tif:[DAY] type:[PEG_PASS] agg:[PASSIVE_DARK] locBrk:[] locID:[] set:[] idMktID:[0] status:[CANCELLED] rr:[] cr:[MARKET_CLOSED] execQty:[207] execPrice:[2970.536232] lastFill:[1]
";
// 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/