import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "((8|\\+7?)[\\- ]?)?(\\(?\\d{3}\\)?[\\- ]?)?([\\d\\- ]{7,10})";
final String string = "======== local phone\n\n"
+ "765-43-21\n"
+ "7654321\n"
+ "765-4321\n\n"
+ "======== operator phone\n\n"
+ "(921) 765-43-21\n"
+ "(921) 7654321\n"
+ "(921) 765-4321\n\n"
+ "(921)765-43-21\n"
+ "(921)7654321\n"
+ "(921)765-4321\n\n"
+ "921765-43-21\n"
+ "9217654321\n"
+ "921765-4321\n\n"
+ "921-765-43-21\n"
+ "921-7654321\n"
+ "921-765-4321\n\n"
+ "======== world phone\n\n"
+ "+7 (921) 765-43-21\n"
+ "+7(921) 765-43-21\n"
+ "+7-(921) 765-43-21\n"
+ "7 (921) 765-43-21\n"
+ "7(921) 765-43-21\n"
+ "8 (921) 765-43-21\n"
+ "8(921) 765-43-21\n"
+ "8-(921) 765-43-21\n"
+ "8 (921) 765-43-21\n"
+ "8(921) 765-43-21\n"
+ "8-(921) 765-43-21\n\n"
+ "+7 9217654321\n"
+ "+79217654321\n"
+ "+7-9217654321\n"
+ "7 9217654321\n"
+ "79217654321\n"
+ "7-9217654321\n"
+ "8 9217654321\n"
+ "89217654321\n"
+ "8-9217654321\n"
+ "8 9217654321\n"
+ "89217654321\n"
+ "8-9217654321\n\n"
+ "======== not found \n\n"
+ ">>>>>>>>> 1. Коржев Артём Борисович 8-921-641-82-15;\n\n"
+ "======== bad\n\n\n"
+ "0 0 0 0\n"
+ "333 000\n"
+ "1 1 1205 1320 321\n\n\n"
+ "======== разбор\n\n"
+ " # world phone\n"
+ " (\n"
+ " (8|\\+?7)\n"
+ " [\\- ]?\n"
+ " )?\n\n"
+ " # operator phone\n"
+ " (\n"
+ " \\(?\n"
+ " \\d{3}\n"
+ " \\)?\n"
+ " [\\- ]?\n"
+ " )?\n\n"
+ " # local phone\n"
+ " [\\d\\- ]{7,10}";
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