import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^.*?(\\+?(?:\\d{11,14})|(?:\\d{5}\\s(?:\\d{3}\\s\\d{3}|\\d{6}))|(?:\\d{3}(?:\\s\\d{3}){3})|(?:\\d{4}\\s\\d{3}\\s\\d{3})).*$";
final String string = "This is sample. 775 657 7576 sample\n"
+ "Second sample line. 661-525-5366 sample 123\n"
+ "Third line sample 466.755.7888.\n"
+ "07123452670\n\n"
+ "07812 345 931\n\n"
+ "07412 123466\n\n"
+ "00447912345188\n\n"
+ "+971557017442\n\n"
+ "+971 557 856 832\n\n"
+ "0414 934 993\n\n"
+ "So basically, I need a regex for matching 11 digits. (07123456270)\n\n"
+ "Matching 5 digits, followed by space, followed by 3 digits, followed by space, followed by 3 digits. (07812 345 931)\n\n"
+ "Matching 5 digits, followed by space, followed by 6 digits (07412 123466)\n\n"
+ "Matching 14 digits (12345678901234)\n\n"
+ "Matching a + sign followed after with 12 digits (+971557017442)\n\n"
+ "Matching + followed with 3 digits, space, followed by 3 digits, space, 3 more digits (+971 557 856 832)\n\n"
+ "Last one, 4 digits, space, 3 digits, space, 3 digits. (0414 934 993)\n\n"
+ "Someone please help";
final String subst = "$1";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(string);
// The substituted value will be contained in the result variable
final String result = matcher.replaceAll(subst);
System.out.println("Substitution result: " + result);
}
}
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