// 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"(?um)(?:^|\s)(((?:\+|0{2})(?:49|43|33)[-\. ]?|0)([1-9]\d{1,2}[-\. ]?|\([1-9]\d{1,2}\)[-\. ]?)(\d{6,9}|\d{2,3}[-\. ]\d{4,6}))").unwrap();
let string = "+33 100 000 0000
000-000-0000
000 000 0000
000.000.0000
12000-000-000012
12000 000 000012
12000.000.000012
0049-000-0000
000 000 0000
000.000.0000
(000)000-0000
(000)000 0000
(000)000.0000
(000) 000-0000
(000) 000 0000
(000) 000.0000
12(000)000-000012
12(000)000 000012
12(000)000.000012
12(000) 000-000012
12(000) 000 000012
12(000) 000.000012
000-0000
000 0000
000.0000
0000000
(100)0000000
12000-000012
12000 000012
12000.000012
12000000012
12(000)000000012
+28 100 000 0000
+33 000 000 0000
+33 100 000 0000
+49 100 000 0000
+43 100 000 0000
+43.100.000.0000
+43-100-000-0000
+43 100 000 0000
+43.100.000.0000
+43-100-000-0000
+433 100 000 0000
+433.100.000.0000
+433-100-000-0000
+433000000000
0043 1000000000
0043 100000000000023
0043 100000
0043 100000000
0043 100 00 00000
0043 100 000 0000
0043-100-000-0000
00431000000000
0000-000-000-0000
00000000000000
+43 (100)000 0000
0043 (100)000-0000
0043(100)000-0000
0000 (100)000-0000
0000(100)000-0000
+43 (100) 000 0000
0043 (100) 000-0000
0043(100) 000-0000
0000 (100) 000-0000
0000(100) 000-0000
+43 (10)000 0000
0043 (10)000-0000
0043(10)000-0000
0000 (10)000-0000
0000(10)000-0000
+43 (10) 000 0000
0043 (10) 000-0000
0043(10) 000-0000
0000 (10) 000-0000
0000(10) 000-0000
0662 874278
0676 7359567
0343545435343
06700000023
12+43 100 000 000012
12+43.100.000.000012
12+43-100-000-000012
12+43100000000012
120043 100000000012
120043-100-000-000012
120043100000000012
12+43 (100)000 000012
120043 (100)000-000012
120043(100)000-000012
+49 10 000000
(000) 0000-0000
(0000) 0000-0000
(00000) 000-0000
(030000) 00-0000
01200-0000000
0137-000 0000000
01500-0000000
0160-0000000
0170-0000000
032-000000000
0700-0000000
0800-0000000
0900-0-000000
0000000000000
0000000000000
120000000000000
120000000000000
+00+00 000 0000
2013 175000km
019 55000km";
// 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/