import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^#(?:[\\da-f]{3}){1,2}$|^#(?:[\\da-f]{4}){1,2}$|(rgb|hsl)a?\\((\\s*-?\\d+%?\\s*,){2}(\\s*-?\\d+%?\\s*)\\)|(rgb|hsl)a?\\((\\s*-?\\d+%?\\s*,){3}\\s*(0|(0?\\.\\d+)|1)\\)";
final String string = "#ff0\n"
+ "#ff00\n"
+ "#ff00f\n"
+ "#ff00ff\n"
+ "#ff00ff0\n"
+ "#ff00ff00\n"
+ "rgb(0, 0, 0)\n"
+ "rgb(0,)\n"
+ "rgb(0 0)\n"
+ "rgb( 0, 0, 0 )\n"
+ "rgb(-100, -10, 0 )\n"
+ "rgb(0, 0, 0,)\n"
+ "rgb(-100, -10 0 )\n"
+ "rgb(-100 -10 0 , , ,)\n"
+ "rgb(100%, 100%, 100%)\n"
+ "hsl(100%, 100%, 100%, 1009)\n"
+ "rgb(0,0,0,1.2)\n"
+ "rgb(0, 0 , 0 , 1.2)\n"
+ "rgb(0,0,0, 0.4)\n"
+ "rgb(0,0,0, 0.499)\n"
+ "rgb(0, 0 , 0 )\n"
+ "rgba(0, 0, 0, 1)\n"
+ "rgba(0, 0, 0, 0)\n"
+ "rgba( 0, 0, 0, 1)\n"
+ "rgba(0, 0, 0, .45)\n"
+ "rgba(0, 0, 0, .4)\n"
+ "rgba(0,0,0, 1.2)\n"
+ "rgba(100%, 100%, 100%, 1)\n"
+ "hsl(0, 0, 0)\n"
+ "hsl(0,)\n"
+ "hsl(0 0)\n"
+ "hsl( 0, 0, 0 )\n"
+ "hsl(-100, -10, 0 )\n"
+ "hsl(-100 , -10, 0 )\n"
+ "hsl(0, 0, 0,)\n"
+ "hsl(-100, -10 0 )\n"
+ "hsl(-100 -10 0 , , ,)\n"
+ "hsl(100%, 100%, 100%)\n"
+ "hsl(100%, 100%, 100%, 1009)\n"
+ "hsl(0,0,0,1.2)\n"
+ "hsl(0, 0 , 0 , 1.2)\n"
+ "hsl(0,0,0, 0.4)\n"
+ "hsl(0,0,0, 0.499)\n"
+ "hsl(0, 0 , 0 )\n"
+ "hsla(0, 0, 0, 1)\n"
+ "hsla(0, 0, 0, .45)\n"
+ "hsla(0, 0, 0, .4)\n"
+ "hsla(0,0,0, 1.2)\n"
+ "hsla(100%, 100%, 100%, 1)";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE | Pattern.CASE_INSENSITIVE);
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