我只是想从css文件中获取所有的十六进制颜色值。
这些十六进制的值可以是#fff或#ffffff,所以我使用了以下正则表达式:
"^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
"#([a-f0-9]{3}){1,2}/i"
"^#[0-9a-zA-F]{3}"
但是都不起作用。
我期望的结果是:
#996633 #333 #ccc #969696 ....
但是什么也没有,你有什么想法吗?
这是代码:
final String HEX_PATTERN_STRING = "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$";
Pattern pattern = Pattern.compile(HEX_PATTERN_STRING);
try {
final URL CSS = new URL("https://maxcdn.bootstrapcdn.com/.../bootstrap.min.css");
URLConnection data = CSS.openConnection();
StringBuilder result = new StringBuilder();
try (BufferedReader in = new BufferedReader(
new InputStreamReader(
data.getInputStream())
)) {
in.lines().forEach(result::append);
Matcher matcher = pattern.matcher(result);
while (matcher.find()) {
System.out.println(matcher.group(0));
}
System.out.println("Done");
}
} catch (IOException ex) {
}
HEX_PATTERN_STRING
与你的 Marcher 关联起来。 - Graham Nicolfinal String HEX_PATTERN_STRING =“#(?:[A-Fa-f0-9] {6} | [A-Fa-f0-9] {3})”;
,并在以Matcher matcher
开头的行之前添加Pattern pattern = Pattern.compile(HEX_PATTERN_STRING);
。 - Wiktor Stribiżew