Получить URL изображений в файле CSS, используя Java? - PullRequest
7 голосов
/ 21 ноября 2011

Я пытаюсь получить URL-адреса для изображений (все типы MIME) в удаленном файле CSS с использованием Java.

Я использую jsoup для получения URL-адреса CSS.

После бесчисленных часов просмотра CSS Parser я не смог понять это из-за отсутствия документации.

Я также посмотрел на некоторые другие шаги, но просто запутал меня еще больше:

IЯ также видел несколько примеров использования регулярных выражений, но я не очень хорошо знаю, как реализовать его в Java.

У кого-нибудь есть какие-нибудь предложения о том, как решить эту проблему?

Ответы [ 2 ]

6 голосов
/ 24 ноября 2011

В 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), ...
}

Спецификация CSS 2.1 гласит:

Формат значения URI - 'url (', за которым следует необязательныйпробел, за которым следует необязательный символ одинарных кавычек (') или двойных кавычек ("), за которым следует сам URI, за которым следует необязательный символ одинарных кавычек (') или двойных кавычек ("), за которым следует необязательный пробел, за которым следует ')',Два символа кавычки должны быть одинаковыми.

Таким образом, вы можете использовать регулярное выражение, подобное этому:

url\(\s*(['"]?+)(.*?)\1\s*\)

.*? не является жадным, что позволяет вам принимать какнесколько символов по мере необходимости.Собственный квантификатор избегает возврата в ['"]?+.

0 голосов
/ 16 мая 2013

Вы также можете использовать ph-css для этого. См. Пример «Посетите все URL-адреса, содержащиеся в CSS», расположенный по адресу https://github.com/phax/ph-css#code-examples. Не может сделать это намного проще:)

...