// 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{11,14})|(?:\d{5}\s(?:\d{3}\s\d{3}|\d{6}))|(?:\d{3}(?:\s\d{3}){3})|(?:\d{4}\s\d{3}\s\d{3})).*$").unwrap();
let string = "This is sample. 775 657 7576 sample
Second sample line. 661-525-5366 sample 123
Third line sample 466.755.7888.
07123452670
07812 345 931
07412 123466
00447912345188
+971557017442
+971 557 856 832
0414 934 993
So basically, I need a regex for matching 11 digits. (07123456270)
Matching 5 digits, followed by space, followed by 3 digits, followed by space, followed by 3 digits. (07812 345 931)
Matching 5 digits, followed by space, followed by 6 digits (07412 123466)
Matching 14 digits (12345678901234)
Matching a + sign followed after with 12 digits (+971557017442)
Matching + followed with 3 digits, space, followed by 3 digits, space, 3 more digits (+971 557 856 832)
Last one, 4 digits, space, 3 digits, space, 3 digits. (0414 934 993)
Someone please help";
let substitution = "$1";
// result will be a String with the substituted value
let result = regex.replace_all(string, substitution);
println!("{}", result);
}
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/