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 = "Strings with negative numbers do not match. Leading\n"
+ "0's do not match, except when a number is 0.\n"
+ "0, 0, 0\n"
+ "211, 111, 011\n"
+ "000, 160, 255\n"
+ "Strings with a numeric value over 255 do not match\n"
+ "255, 255, 255\n"
+ "255, 255, 256\n"
+ "4-Digit numbers will not match\n"
+ "1, 11, 111\n"
+ "11, 111, 1111\n"
+ "Strings that contain more, or less, than 3 numbers, do \n"
+ "not match. Strings with dangling commas do not match.\n"
+ "111, 122, 133\n"
+ "111, 122, 133, 144\n"
+ "111, 122, 133,\n"
+ "111, 122\n"
+ "111\n"
+ "Numbers 0-9 are valid as long as the numbers they are used \n"
+ "to form are between 0 and 255\n"
+ "209, 183, 245";
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