// 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"-*\nRuntime error\n*User: (?<User>\w.+)\nDomain: (?<Domain>\w.+)\nURI: (?<uri>\/?\w.+)\nReferer: (?<referer>\w.+)\nAgent: (?<agent>\w.+)\n.+\n.+\nweb.Server Traceback \(most recent call last\):\n(?<trace>.(.|\n)*)").unwrap();
let string = "-------------------------------------------------
Runtime error
User: Dr. AkomaDr (896)
Domain: staging-app.clickmedix.com
URI: /users/profile_edit
Referer: https://staging-app.clickmedix.com/akomapa/users/profile_edit
Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.102 Safari/537.36
Params: {}
web.Server Traceback (most recent call last):
[Failure instance: Traceback: <type 'exceptions.ZeroDivisionError'>: integer division or modulo by zero
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/http.py:1349:dataReceived
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/http.py:1563:_finishRequestBody
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/http.py:1618:allContentReceived
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/http.py:773:requestReceived
--- <exception caught here> ---
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/server.py:131:process
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/server.py:562:getResourceFor
/srv/click/shared/virtualenv/lib/python2.7/site-packages/twisted/web/resource.py:65:getChildForRequest
/srv/click/shared/virtualenv/src/warp/warp/webserver/resource.py:208:getChildWithDefault
/srv/click/current/util/helpers.py:78:getResponse
/srv/click/current/nodes/users/users.py:255:render_profile_edit";
// 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/