// 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"(?m)(^\#{4}\s{1}[\d\D].*?[:]\s{2})\n\n(>[\d\D].*?\s{2})\n([\d\D].*?\s{2})").unwrap();
let string = "#### <u>Author name</u> writes in his 'Title of some Book/Essay/Article':
> First sentence with soft line breaks at the end.
Second sentence.
Third sentence.
Any number of sentences if there are any will follow — all need to be in quote blocks.
<Some other text not belonging to above author comes after empty line>.
";
let substitution = "$1\\n\\n$2\\n> $3\\n> ";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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/