// 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"(?ms)^(([A-Z][a-z]+)(?=[\ ])|([A-Z][a-z]*[\'\-])(?=[A-Z]?[a-z]+)|([A-Z][a-z]+)(?![\ '\-])|(?<=[\'\-])([a-z]+)|(?<=[a-z])([\ ])(?=[A-Z]))+$").unwrap();
let string = "Kamal Manil
Kamal O'Neil
Kamal Manil Malaka
Kamal Al-Shaba
Al-shaba
O'neil
Ol'Neil
Jo Jo
Jo
Kamal Manil
Kamal O' Neil
Kamal Manil Malaka
Kamal Al- Shaba
Al -shaba
O 'neil
Jo Jo
A B C Jo
Kamal SDF -''''sdf''-
A
a
A B
-Shana
'Neil
-shaba
'neil
([A-Z][a-z]+(?![\\'\\-]))";
// 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/