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

时间:2011-11-21 06:06:17

标签: java css regex parsing jsoup

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

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

经过无数个小时的审查CSS Parser,由于缺乏文件,我无法理解。

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

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

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

2 个答案:

答案 0 :(得分:6)

在Java中,您必须使用java.util.regex包中的PatternMatcher

您编译模式,然后使用字符串实例化匹配器,然后查找与您的模式匹配的所有内容。

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中包含的所有网址”示例。 不能做得更容易:)