使用Java获取CSS文件中的图像URL?

pbo*_*nov 7 css java regex parsing jsoup

我正在尝试使用Java在远程CSS文件中获取图像的URL(所有MIME类型).

我正在使用jsoup来获取css的URL.

经过无数个小时的查看CSS Parser后,由于缺乏文档,我无法弄明白.

我还看了一些其他的步骤,但更让我困惑的是:

我也看过一些使用正则表达式的例子,但我不太熟悉如何在java中实现它.

有人会就如何解决这个问题提出一些建议吗?

Lud*_*uty 6

在Java中,你必须使用一个PatternMatcherjava.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)

.*?是非贪婪的,允许你根据需要采取尽可能少的字符.占有量词避免了任何回溯['"]?+.