// 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)\d{4}[^\/]+").unwrap();
let string = "$ cat file1
0775 web:web /path/to/001
0775 web:web /path/to/foo
0775 web:web /path/to/bar
0775 web:web /path/to/baz
0775 web:web /path/to/hello
$ cat file2
0755 web:web /path/to/foo
0755 web:web /path/to/bar
0755 web:web /path/to/baz
$ diff -y file1 file2
0775 web:web /path/to/001 | 0755 web:web /path/to/foo
0775 web:web /path/to/foo | 0755 web:web /path/to/bar
0775 web:web /path/to/bar | 0755 web:web /path/to/baz
0775 web:web /path/to/baz <
0775 web:web /path/to/hello <
# if you could ignore '^[^\\/]+' on each line
0775 web:web /path/to/001 <
0775 web:web /path/to/foo | 0755 web:web /path/to/foo
0775 web:web /path/to/bar | 0755 web:web /path/to/bar
0775 web:web /path/to/baz | 0755 web:web /path/to/baz
0775 web:web /path/to/hello <";
// 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/