我正在尝试使用Java在远程CSS文件中获取图像的URL(所有MIME类型)。
我正在使用jsoup来获取css的URL。
经过无数个小时的审查CSS Parser,由于缺乏文件,我无法理解。
我还看了一些其他的步骤,但让我更加困惑:
我也看过一些使用正则表达式的例子,但我不太熟悉如何在java中实现它。
有人会就如何解决这个问题提出一些建议吗?
答案 0 :(得分:6)
在Java中,您必须使用java.util.regex
包中的Pattern
和Matcher
。
您编译模式,然后使用字符串实例化匹配器,然后查找与您的模式匹配的所有内容。
Pattern p = Pattern.compile("...");
Matcher m = p.matcher("your CSS file as a String");
while (m.find()) {
// Here use m.group(), m.group(1), ...
}
CSS 2.1规范声明:
URI值的格式为' url('后跟可选的空格,后跟可选的单引号(')或双引号(")字符,后跟URI本身,后跟可选的单引号(')或双引号(")字符,后跟可选的空格,后跟')'。两个引号字符必须相同。
因此你可以使用像这样的正则表达式:
url\(\s*(['"]?+)(.*?)\1\s*\)
.*?
非贪婪,允许您根据需要选择少量字符。占有量词避免了['"]?+
中的任何回溯。
答案 1 :(得分:0)
您也可以使用ph-css。 请参阅位于https://github.com/phax/ph-css#code-examples的“访问CSS中包含的所有网址”示例。 不能做得更容易:)