// 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"(?x)<{7}[ ]HEAD[\r\n]{1,2}([\S\s]*?)(?:={7}[\r\n]{1,2}((?:[\S\s]?(?!(>{7}[ ][a-z0-9]{40})))*[\r\n]?)(?:>{7}[ ][a-z0-9]{40}[\r\n]{0,2})?)").unwrap();
let string = "<<<<<<< HEAD
Release.AspNetCompiler.VirtualPath = \"/agsdasgd\"
Release.AspNetCompiler.PhysicalPath = \"Server\\PATH\\afgdafgd\\\"
Release.AspNetCompiler.TargetPath = \"PrePATH\\to\\PATH\\afgdafdgPATH\\\"
=======
Release.AspNetCompiler.VirtualPath = \"/afdgafdPATH\"
Release.AspNetCompiler.PhysicalPath = \"PATH\\PATH\\PATH\\\"
Release.AspNetCompiler.TargetPath = \"PATHYPATH\\afdgadfg\\\"
>>>>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
afds
fgds
testing
<<<<<<< HEAD
kljasdfasfd
sadfkljasdf
kdjsfla
k
afjdsl
asfdkljafsdk
jlfsadkj
lasfdk
jl
=======
fadsjkl
fdaskj
lfdas
jklfadsk
ljafdsjkl
fadsk
ljafdsk
jlafdskj
ladfs
kjlfdask
ljfadskj
ladfsk
jl
>>>>>>> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
fds
fads
afds
fads
";
// 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/