import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?=(?:\\+|0{2})?(?:(?:[\\(\\-\\)\\.\\/ \\t\\f]*\\d){7,10})?(?:[\\-\\.\\/ \\t\\f]?\\d{2,3})(?:[\\-\\s]?[ext]{1,3}[\\-\\.\\/ \\t\\f]?\\d{1,4})?$)((?:\\+|0{2})\\d{0,3})?(?:[\\-\\.\\/ \\t\\f]?)(\\(0\\d[ ]?\\d{0,4}\\)|\\(\\d{0,4}\\)|\\d{0,4})(?:[\\-\\.\\/ \\t\\f]{0,2}\\d){3,8}(?:[\\-\\s]?(?:x|ext)[\\-\\t\\f ]?(\\d{1,4}))?$";
final String string = "911\n"
+ "123456789\n"
+ "12345678\n"
+ "1234567890123\n"
+ "001231234567890\n"
+ "0012312345678901\n"
+ "123456789012\n"
+ "1234\n"
+ "0091234567890\n"
+ "+9 123-4567890-x321\n"
+ "+9-123-456-7890\n"
+ "+9 123 4 5 6-7890x1234\n"
+ "009-(123)-456-7890 ext4321\n"
+ "0091234567890x1234\n"
+ "+9-123-456-7890x12345\n"
+ "+9-123-456-7890 ext 1234\n"
+ "00123-(4321)-567.89 ext-4321\n"
+ "0027-123-456-7890\n"
+ "+27-123-456-7890\n"
+ "+9(123)4567890\n\n"
+ "(01 55) 1234 5678\n"
+ "(01 551) 12345678\n"
+ "+49 (1234) 567890\n"
+ " (0)123456789\n"
+ "+34123456789\n"
+ "+34 (0)123456789\n"
+ " +340123456789\n"
+ "+34 123 456 789\n"
+ "+34 1 23 45 67 89\n"
+ "001230123456789\n"
+ "ext1234\n"
+ "++34123456789\n"
+ "00-0-----000\n"
+ "01 555012345\n"
+ "001-555012345\n"
+ "+012345678\n"
+ "112\n"
+ "12(34567890\n"
+ "123)456789012345\n\n"
+ "1-234-567-8901\n"
+ "+1-234-567-8901 x1234\n"
+ "0011-234-567-8901 ext1234\n"
+ ")234( 567 8901\n"
+ "(234) 567 8901\n"
+ "+11 (234) 567-8901\n"
+ "+1.234.567.8901\n"
+ "+1/234/567/8901\n"
+ "12345678901\n"
+ "2345678901";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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