import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((?:\\+|00)[17](?: |\\-|\\.)?|(?:\\+|00)[1-9]\\d{0,2}(?: |\\-|\\.)?|(?:\\+|00)1\\-\\d{3}(?: |\\-|\\.)?)?(0\\d|\\([0-9]{3}\\)|[1-9]{0,3})(?:((?: |\\-|\\.)[0-9]{2}){4}|((?:[0-9]{2}){4})|((?: |\\-|\\.)[0-9]{3}(?: |\\-|\\.)[0-9]{4})|([0-9]{7}))";
final String string = " 12345678901\n"
+ " 12345678901x1234\n"
+ " 345678901x1234\n"
+ " 12344678901\n"
+ " 12345678901\n"
+ " 12345678901\n"
+ " 12345678901\n"
+ " +4112345678\n"
+ " +441234567890\n"
+ " 1 (234) 567-8901\n"
+ " 1 (234) 567-8901 x1234\n"
+ "01 23 45 56 78\n"
+ "335.23.23.23.23\n"
+ "0689912549\n"
+ "+33698912549\n"
+ "+33 6 79 91 25 49\n"
+ "+33-6-79-91-25-49\n"
+ "(555)-555-5555\n"
+ "555-555-5555\n"
+ "+1-238 6 79 91 25 49\n"
+ "+1-555-532-3455\n"
+ "+15555323455\n"
+ "55555555555555555555555555\n"
+ "+7 06 79 91 25 49\n"
+ "935 263223 64 949\n"
+ "067 9 91 254 9\n"
+ "331 23 45 56 78\n"
+ "331.23.45.56.78\n"
+ "331 23 45 56.78\n"
+ "33123455678\n"
+ "2312523125\n\n";
final Pattern pattern = Pattern.compile(regex);
final Matcher matcher = pattern.matcher(string);
while (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
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 Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html