import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "(?:(?<=^)|(?<=\\D))((00|\\+)?55(\\s|\\.|-)*)?((\\()?0?\\d{2}(?(5)\\)|)(\\s|\\.|-)*)?(9(\\s|\\.|-)*)?\\d{4}(\\s|\\.|-)*\\d{4}(?=\\D|$)";
final String string = "98993132\n"
+ "9899-3132\n"
+ "9899.3132\n"
+ "9899 3132\n"
+ "7198993132\n"
+ "719899-3132\n"
+ "719899.3132\n"
+ "719899 3132\n"
+ "71 98993132\n"
+ "71 9899-3132\n"
+ "71 9899.3132\n"
+ "71 9899 3132\n"
+ "071 98993132\n"
+ "071 9899-3132\n"
+ "071 9899.3132\n"
+ "071 9899 3132\n"
+ "(71)98993132\n"
+ "(71)9899-3132\n"
+ "(71)9899.3132\n"
+ "(71)9899 3132\n"
+ "(71) 98993132\n"
+ "(71) 9899-3132\n"
+ "(71) 9899.3132\n"
+ "(071) 9899 3132\n"
+ "(071) 98993132\n"
+ "(071) 9899-3132\n"
+ "(071) 9899.3132\n"
+ "(071) 9899 3132\n"
+ "557198993132\n"
+ "55719899-3132\n"
+ "55719899.3132\n"
+ "55719899 3132\n"
+ "5571 98993132\n"
+ "5571 9899-3132\n"
+ "5571 9899.3132\n"
+ "5571 9899 3132\n"
+ "55071 98993132\n"
+ "55071 9899-3132\n"
+ "55071 9899.3132\n"
+ "55071 9899 3132\n"
+ "55(71)98993132\n"
+ "55(71)9899-3132\n"
+ "55(71)9899.3132\n"
+ "55(71)9899 3132\n"
+ "55(71) 98993132\n"
+ "55(71) 9899-3132\n"
+ "55(71) 9899.3132\n"
+ "55(071) 9899 3132\n"
+ "55(071) 98993132\n"
+ "55(071) 9899-3132\n"
+ "55(071) 9899.3132\n"
+ "55(071) 9899 3132\n"
+ "55 7198993132\n"
+ "55 719899-3132\n"
+ "55 719899.3132\n"
+ "55 719899 3132\n"
+ "55 71 98993132\n"
+ "55 71 9899-3132\n"
+ "55 71 9899.3132\n"
+ "55 71 9899 3132\n"
+ "55 071 98993132\n"
+ "55 071 9899-3132\n"
+ "55 071 9899.3132\n"
+ "55 071 9899 3132\n"
+ "55 (71)98993132\n"
+ "55 (71)9899-3132\n"
+ "55 (71)9899.3132\n"
+ "55 (71)9899 3132\n"
+ "55 (71) 98993132\n"
+ "55 (71) 9899-3132\n"
+ "55 (71) 9899.3132\n"
+ "55 (071) 9899 3132\n"
+ "55 (071) 98993132\n"
+ "55 (071) 9899-3132\n"
+ "55 (071) 9899.3132\n"
+ "55 (071) 9899 3132\n"
+ "+557198993132\n"
+ "+55719899-3132\n"
+ "+55719899.3132\n"
+ "+55719899 3132\n"
+ "+5571 98993132\n"
+ "+5571 9899-3132\n"
+ "+5571 9899.3132\n"
+ "+5571 9899 3132\n"
+ "+55071 98993132\n"
+ "+55071 9899-3132\n"
+ "+55071 9899.3132\n"
+ "+55071 9899 3132\n"
+ "+55(71)98993132\n"
+ "+55(71)9899-3132\n"
+ "+55(71)9899.3132\n"
+ "+55(71)9899 3132\n"
+ "+55(71) 98993132\n"
+ "+55(71) 9899-3132\n"
+ "+55(71) 9899.3132\n"
+ "+55(071) 9899 3132\n"
+ "+55(071) 98993132\n"
+ "+55(071) 9899-3132\n"
+ "+55(071) 9899.3132\n"
+ "+55(071) 9899 3132\n"
+ "+55 7198993132\n"
+ "+55 719899-3132\n"
+ "+55 719899.3132\n"
+ "+55 719899 3132\n"
+ "+55 71 98993132\n"
+ "+55 71 9899-3132\n"
+ "+55 71 9899.3132\n"
+ "+55 71 9899 3132\n"
+ "+55 071 98993132\n"
+ "+55 071 9899-3132\n"
+ "+55 071 9899.3132\n"
+ "+55 071 9899 3132\n"
+ "+55 (71)98993132\n"
+ "+55 (71)9899-3132\n"
+ "+55 (71)9899.3132\n"
+ "+55 (71)9899 3132\n"
+ "+55 (71) 98993132\n"
+ "+55 (71) 9899-3132\n"
+ "+55 (71) 9899.3132\n"
+ "+55 (071) 9899 3132\n"
+ "+55 (071) 98993132\n"
+ "+55 (071) 9899-3132\n"
+ "+55 (071) 9899.3132\n"
+ "+55 (071) 9899 3132\n"
+ "998993132\n"
+ "99899-3132\n"
+ "99899.3132\n"
+ "99899 3132\n"
+ "71998993132\n"
+ "7199899-3132\n"
+ "7199899.3132\n"
+ "7199899 3132\n"
+ "71 998993132\n"
+ "71 99899-3132\n"
+ "71 99899.3132\n"
+ "71 99899 3132\n"
+ "071 998993132\n"
+ "071 99899-3132\n"
+ "071 99899.3132\n"
+ "071 99899 3132\n"
+ "(71)998993132\n"
+ "(71)99899-3132\n"
+ "(71)99899.3132\n"
+ "(71)99899 3132\n"
+ "(71) 998993132\n"
+ "(71) 99899-3132\n"
+ "(71) 99899.3132\n"
+ "(071) 99899 3132\n"
+ "(071) 998993132\n"
+ "(071) 99899-3132\n"
+ "(071) 99899.3132\n"
+ "(071) 99899 3132\n"
+ "5571998993132\n"
+ "557199899-3132\n"
+ "557199899.3132\n"
+ "557199899 3132\n"
+ "5571 998993132\n"
+ "5571 99899-3132\n"
+ "5571 99899.3132\n"
+ "5571 99899 3132\n"
+ "55071 998993132\n"
+ "55071 99899-3132\n"
+ "55071 99899.3132\n"
+ "55071 99899 3132\n"
+ "55(71)998993132\n"
+ "55(71)99899-3132\n"
+ "55(71)99899.3132\n"
+ "55(71)99899 3132\n"
+ "55(71) 998993132\n"
+ "55(71) 99899-3132\n"
+ "55(71) 99899.3132\n"
+ "55(071) 99899 3132\n"
+ "55(071) 998993132\n"
+ "55(071) 99899-3132\n"
+ "55(071) 99899.3132\n"
+ "55(071) 99899 3132\n"
+ "55 71998993132\n"
+ "55 7199899-3132\n"
+ "55 7199899.3132\n"
+ "55 7199899 3132\n"
+ "55 71 998993132\n"
+ "55 71 99899-3132\n"
+ "55 71 99899.3132\n"
+ "55 71 99899 3132\n"
+ "55 071 998993132\n"
+ "55 071 99899-3132\n"
+ "55 071 99899.3132\n"
+ "55 071 99899 3132\n"
+ "55 (71)998993132\n"
+ "55 (71)99899-3132\n"
+ "55 (71)99899.3132\n"
+ "55 (71)99899 3132\n"
+ "55 (71) 998993132\n"
+ "55 (71) 99899-3132\n"
+ "55 (71) 99899.3132\n"
+ "55 (071) 99899 3132\n"
+ "55 (071) 998993132\n"
+ "55 (071) 99899-3132\n"
+ "55 (071) 99899.3132\n"
+ "55 (071) 99899 3132\n"
+ "+5571998993132\n"
+ "+557199899-3132\n"
+ "+557199899.3132\n"
+ "+557199899 3132\n"
+ "+5571 998993132\n"
+ "+5571 99899-3132\n"
+ "+5571 99899.3132\n"
+ "+5571 99899 3132\n"
+ "+55071 998993132\n"
+ "+55071 99899-3132\n"
+ "+55071 99899.3132\n"
+ "+55071 99899 3132\n"
+ "+55(71)998993132\n"
+ "+55(71)99899-3132\n"
+ "+55(71)99899.3132\n"
+ "+55(71)99899 3132\n"
+ "+55(71) 998993132\n"
+ "+55(71) 99899-3132\n"
+ "+55(71) 99899.3132\n"
+ "+55(071) 99899 3132\n"
+ "+55(071) 998993132\n"
+ "+55(071) 99899-3132\n"
+ "+55(071) 99899.3132\n"
+ "+55(071) 99899 3132\n"
+ "+55 71998993132\n"
+ "+55 7199899-3132\n"
+ "+55 7199899.3132\n"
+ "+55 7199899 3132\n"
+ "+55 71 998993132\n"
+ "+55 71 99899-3132\n"
+ "+55 71 99899.3132\n"
+ "+55 71 99899 3132\n"
+ "+55 071 998993132\n"
+ "+55 071 99899-3132\n"
+ "+55 071 99899.3132\n"
+ "+55 071 99899 3132\n"
+ "+55 (71)998993132\n"
+ "+55 (71)99899-3132\n"
+ "+55 (71)99899.3132\n"
+ "+55 (71)99899 3132\n"
+ "+55 (71) 998993132\n"
+ "+55 (71) 99899-3132\n"
+ "+55 (71) 99899.3132\n"
+ "+55 (071) 99899 3132\n"
+ "+55 (071) 998993132\n"
+ "+55 (071) 99899-3132\n"
+ "+55 (071) 99899.3132\n"
+ "+55 (071) 99899 3132\n"
+ "9 98993132\n"
+ "9 9899-3132\n"
+ "9 9899.3132\n"
+ "9 9899 3132\n"
+ "719 98993132\n"
+ "719 9899-3132\n"
+ "719 9899.3132\n"
+ "719 9899 3132\n"
+ "71 9 98993132\n"
+ "71 9 9899-3132\n"
+ "71 9 9899.3132\n"
+ "71 9 9899 3132\n"
+ "071 9 98993132\n"
+ "071 9 9899-3132\n"
+ "071 9 9899.3132\n"
+ "071 9 9899 3132\n"
+ "(71)9 98993132\n"
+ "(71)9 9899-3132\n"
+ "(71)9 9899.3132\n"
+ "(71)9 9899 3132\n"
+ "(71) 9 98993132\n"
+ "(71) 9 9899-3132\n"
+ "(71) 9 9899.3132\n"
+ "(071) 9 9899 3132\n"
+ "(071) 9 98993132\n"
+ "(071) 9 9899-3132\n"
+ "(071) 9 9899.3132\n"
+ "(071) 9 9899 3132\n"
+ "55719 98993132\n"
+ "55719 9899-3132\n"
+ "55719 9899.3132\n"
+ "55719 9899 3132\n"
+ "5571 9 98993132\n"
+ "5571 9 9899-3132\n"
+ "5571 9 9899.3132\n"
+ "5571 9 9899 3132\n"
+ "55071 9 98993132\n"
+ "55071 9 9899-3132\n"
+ "55071 9 9899.3132\n"
+ "55071 9 9899 3132\n"
+ "55(71)9 98993132\n"
+ "55(71)9 9899-3132\n"
+ "55(71)9 9899.3132\n"
+ "55(71)9 9899 3132\n"
+ "55(71) 9 98993132\n"
+ "55(71) 9 9899-3132\n"
+ "55(71) 9 9899.3132\n"
+ "55(071) 9 9899 3132\n"
+ "55(071) 9 98993132\n"
+ "55(071) 9 9899-3132\n"
+ "55(071) 9 9899.3132\n"
+ "55(071) 9 9899 3132\n"
+ "55 719 98993132\n"
+ "55 719 9899-3132\n"
+ "55 719 9899.3132\n"
+ "55 719 9899 3132\n"
+ "55 71 9 98993132\n"
+ "55 71 9 9899-3132\n"
+ "55 71 9 9899.3132\n"
+ "55 71 9 9899 3132\n"
+ "55 071 9 98993132\n"
+ "55 071 9 9899-3132\n"
+ "55 071 9 9899.3132\n"
+ "55 071 9 9899 3132\n"
+ "55 (71)9 98993132\n"
+ "55 (71)9 9899-3132\n"
+ "55 (71)9 9899.3132\n"
+ "55 (71)9 9899 3132\n"
+ "55 (71) 9 98993132\n"
+ "55 (71) 9 9899-3132\n"
+ "55 (71) 9 9899.3132\n"
+ "55 (071) 9 9899 3132\n"
+ "55 (071) 9 98993132\n"
+ "55 (071) 9 9899-3132\n"
+ "55 (071) 9 9899.3132\n"
+ "55 (071) 9 9899 3132\n"
+ "+55719 98993132\n"
+ "+55719 9899-3132\n"
+ "+55719 9899.3132\n"
+ "+55719 9899 3132\n"
+ "+5571 9 98993132\n"
+ "+5571 9 9899-3132\n"
+ "+5571 9 9899.3132\n"
+ "+5571 9 9899 3132\n"
+ "+55071 9 98993132\n"
+ "+55071 9 9899-3132\n"
+ "+55071 9 9899.3132\n"
+ "+55071 9 9899 3132\n"
+ "+55(71)9 98993132\n"
+ "+55(71)9 9899-3132\n"
+ "+55(71)9 9899.3132\n"
+ "+55(71)9 9899 3132\n"
+ "+55(71) 9 98993132\n"
+ "+55(71) 9 9899-3132\n"
+ "+55(71) 9 9899.3132\n"
+ "+55(071) 9 9899 3132\n"
+ "+55(071) 9 98993132\n"
+ "+55(071) 9 9899-3132\n"
+ "+55(071) 9 9899.3132\n"
+ "+55(071) 9 9899 3132\n"
+ "+55 719 98993132\n"
+ "+55 719 9899-3132\n"
+ "+55 719 9899.3132\n"
+ "+55 719 9899 3132\n"
+ "+55 71 9 98993132\n"
+ "+55 71 9 9899-3132\n"
+ "+55 71 9 9899.3132\n"
+ "+55 71 9 9899 3132\n"
+ "+55 071 9 98993132\n"
+ "+55 071 9 9899-3132\n"
+ "+55 071 9 9899.3132\n"
+ "+55 071 9 9899 3132\n"
+ "+55 (71)9 98993132\n"
+ "+55 (71)9 9899-3132\n"
+ "+55 (71)9 9899.3132\n"
+ "+55 (71)9 9899 3132\n"
+ "+55 (71) 9 98993132\n"
+ "+55 (71) 9 9899-3132\n"
+ "+55 (71) 9 9899.3132\n"
+ "+55 (071) 9 9899 3132\n"
+ "+55 (071) 9 98993132\n"
+ "+55 (071) 9 9899-3132\n"
+ "+55 (071) 9 9899.3132\n"
+ "+55 (071) 9 9899 3132\n\n"
+ "====== partial matches =======\n"
+ "55(71 9 7676-3131\n"
+ "55 (71 7676-3131\n"
+ "porque76763131sera\n\n"
+ "======== no matches ==========\n"
+ "41650-010\n"
+ "123.456.789-00\n"
+ "123456789-00";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
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