pbo*_*nov 7 css java regex parsing jsoup
我正在尝试使用Java在远程CSS文件中获取图像的URL(所有MIME类型).
我正在使用jsoup来获取css的URL.
经过无数个小时的查看CSS Parser后,由于缺乏文档,我无法弄明白.
我还看了一些其他的步骤,但更让我困惑的是:
我也看过一些使用正则表达式的例子,但我不太熟悉如何在java中实现它.
有人会就如何解决这个问题提出一些建议吗?
在Java中,你必须使用一个Pattern和Matcher从java.util.regex包.
编译模式,然后用字符串实例化匹配器,然后查找与模式匹配的所有内容.
Pattern p = Pattern.compile("...");
Matcher m = p.matcher("your CSS file as a String");
while (m.find()) {
// Here use m.group(), m.group(1), ...
}
Run Code Online (Sandbox Code Playgroud)
CSS 2.1规范说明:
URI值的格式为'url('后跟可选的空格,后跟可选的单引号(')或双引号(")字符,后跟URI本身,后跟可选的单引号(')或双引号(")字符后跟可选的空格,后跟')'.两个引号字符必须相同.
因此你可以使用像这样的正则表达式:
url\(\s*(['"]?+)(.*?)\1\s*\)
Run Code Online (Sandbox Code Playgroud)
这.*?是非贪婪的,允许你根据需要采取尽可能少的字符.占有量词避免了任何回溯['"]?+.