// 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)(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2},\d{3}) \[.*\] ERROR com.encima.project.h2y.handlers.XML.XMLBusinessComparator - \[Tx: (\d{8,12})\] Hotel id (\d*) : No weekends found for given hotel with the query criteria QueryData\(arrivaldate=(\d{4}-\d{2}-\d{2}), nbofnights=(\d), nbofadults=(\d), nbofchildren=(\d), agechildren=.{0,4}, nbofbabies=\d, agebabies=.{0,4}, nbofrooms=(\d), language=(\w{2}), affiliate=(\d{0,5}), hotelIds=.*").unwrap();
let string = "2016-06-22 00:00:15,759 [http-nio-8110-exec-12] ERROR com.encima.project.h2y.handlers.XML.XMLBusinessComparator - [Tx: 710117088] Hotel id 10500 : No weekends found for given hotel with the query criteria QueryData(arrivaldate=2016-09-05, nbofnights=6, nbofadults=2, nbofchildren=0, agechildren=null, nbofbabies=0, agebabies=null, nbofrooms=1, language=es, affiliate=4894, hotelIds=[10628, 12175, 9869, 12905, 11670, 10500, 10822, 12132, 6309, 12559])";
// 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/