// 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"(warning|error|note|help)(?:\[(.*)\])?\: (.*)\s+--> (.*):(\d+):(\d+)\n(?:((?:.+\n)+)\.+)?(?:[\d\s]+\|.*)*((?:\s+=.*)+)?").unwrap();
let string = "Compiling sample v0.1.0 (file:///home/sample/src/sample.rs)
error: cannot borrow immutable local variable `buffer` as mutable
--> src/sample.rs:29:32
|
26 | let buffer = String::new();
| ------ use `mut buffer` here to make mutable
...
29 | while ifile.read_line(&mut buffer).unwrap() > 0 {
| ^^^^^^ cannot borrow mutably
error: cannot borrow immutable local variable `buffer` as mutable
--> src/sample.rs:39:9
|
26 | let buffer = String::new();
| ------ use `mut buffer` here to make mutable
...
39 | buffer.clear();
| ^^^^^^ cannot borrow mutably
error[E0384]: re-assignment of immutable variable `buffer`
--> src/sample.rs:30:9
|
26 | let buffer = String::new();
| ------ first assignment to `buffer`
...
30 | buffer = buffer.replace(\"\\n\", \"\");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ re-assignment of immutable variable
error: aborting due to 3 previous errors
error: Could not compile `sample`.
To learn more, run the command again with --verbose.";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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/