$re = '/(warning|error|note|help)(?:\[(.*)\])?\: (.*)\s+--> (.*):(\d+):(\d+)\n(?:((?:.+\n)+)\.+)?(?:[\d\s]+\|.*)*((?:\s+=.*)+)?/';
$str = '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.';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
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 PHP, please visit: http://php.net/manual/en/ref.pcre.php