import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]), (25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9]), (25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$";
final String string = "Min val is 0. Leading zeros don't \n"
+ "match unless the value is 0.\n"
+ "0, 0, 0\n"
+ "00, 0, 0\n"
+ "0, 0, 00\n\n"
+ "Max numeric number is 255, anything \n"
+ "larger than 255 will not match.\n"
+ "255, 255, 255\n"
+ "255, 255, 256\n\n"
+ "4-Digit numbers will not match\n"
+ "1, 11, 111\n"
+ "11, 111, 1111\n\n"
+ "dangling commas do not match\n"
+ "45, 67, 89\n"
+ "45, 67, 89,\n\n"
+ "Obviously if a dangling comma doesn't \n"
+ "match, neither will 4 numbers.\n"
+ "1, 2, 3\n"
+ "1, 2, 3, 4\n\n"
+ "Two numbers do not match, and adding a space,\n"
+ "or space & comma, doesn't match either.\n"
+ "0, 1, 2\n"
+ "0, 1\n"
+ "0, 1,\n"
+ "0, 1, \n\n"
+ "Single numbers do not match; adding a space &/or\n"
+ "comma, will not cause the single number to match.\n"
+ "9, 9, 9\n"
+ "9\n"
+ "9,\n"
+ "9, ";
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