import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = "^(\n"
+ " \\#[\\da-f]{3}\n"
+ " |\\#[\\da-f]{6}\n"
+ " |rgba\\(\n"
+ " ((\\d{1,2}|1\\d\\d|2([0-4]\\d|5[0-5]))\\s*,\\s*){2}\n"
+ " ((\\d{1,2}|1\\d\\d|2([0-4]\\d|5[0-5]))\\s*)\n"
+ " (,\\s*(0\\.\\d+|1))\n"
+ " \\)\n"
+ " |hsla\\(\n"
+ " \\s*((\\d{1,2}|[1-2]\\d{2}|3([0-5]\\d|60)))\\s*,\n"
+ " \\s*((\\d{1,2}|100)\\s*%)\\s*,\n"
+ " \\s*((\\d{1,2}|100)\\s*%)\n"
+ " (,\\s*(0\\.\\d+|1))\n"
+ " \\)\n"
+ " |rgb\\(\n"
+ " ((\\d{1,2}|1\\d\\d|2([0-4]\\d|5[0-5]))\\s*,\\s*){2}\n"
+ " ((\\d{1,2}|1\\d\\d|2([0-4]\\d|5[0-5]))\\s*)\n"
+ " |hsl\\(\n"
+ " \\s*((\\d{1,2}|[1-2]\\d{2}|3([0-5]\\d|60)))\\s*,\n"
+ " \\s*((\\d{1,2}|100)\\s*%)\\s*,\n"
+ " \\s*((\\d{1,2}|100)\\s*%)\n"
+ " \\)\n"
+ ")$";
final String string = "#ffffff\n"
+ "#nothing\n"
+ "#AF12AA\n"
+ "rgba(222, 222, 222)\n"
+ "RgBa(72,73,75)\n"
+ "hsl(0, 100%, 100%)\n"
+ "rgba(1024, 1024, 10)\n"
+ "#ffffff\n"
+ "#ffffffasdf\n"
+ "asdf#ffffff\n"
+ "rgba(170,221,255,0.59)\n"
+ "rgba(170,221,255,0.59)asdf\n"
+ "rgb(0, 0, 0)\n"
+ "asdfrgb(0, 0, 0)\n"
+ "rgb(0, 0, 0)asdf\n"
+ "hsla(208, 56%, 46%, 1)\n"
+ "hsla(208, 56%, 46%, 1)asdf\n"
+ "asdfhsla(208, 56%, 46%, 1)\n"
+ "hsl(208,56%,46%)asdf\n"
+ "asdfhsl(208,56%,46%)";
final Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.MULTILINE | Pattern.COMMENTS);
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