import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(?:(?:56|78)-[0-9]+|[0-9]{2,})$";
final String string = "Valid matches:\n"
+ "minimun two characters and only numbers OR\n"
+ "only numbers with dash in third position and first two numbers should be either 56 or 78. So if there is dash then there should be 56 or 78 next to it\n\n"
+ "12\n"
+ "123456789\n"
+ "423432423423423423423432\n"
+ "56-1\n"
+ "56-23456789\n"
+ "78-12\n"
+ "78-34234234234234234234234\n"
+ "Invalid matches:\n\n"
+ "1\n"
+ "1-\n"
+ "11-\n"
+ "1-112\n"
+ "44-2342424\n"
+ "64-4345334\n"
+ "55-sdrfewrwe\n"
+ "56-\n"
+ "5678-234324123423154";
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