// 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)(?sm)\A.*?(?=message)").unwrap();
let string = "package grpc;
import \"envoyproxy/protoc-gen-validate/validate/validate.proto\";
import \"google/api/annotations.proto\";
import \"google/protobuf/wrappers.proto\";
import \"protoc-gen-swagger/options/annotations.proto\";
message Acc {
message AccErr {
enum Enum {
UNKNOWN = 0;
CASH = 1;
}
}
string account_id = 1;
string name = 3;
string account_type = 4;
}
message Name {
string firstname = 1;
string lastname = 2;
}
";
// 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/