2014-10-26 3 views
1

у меня есть это регулярное выражение:.Как использовать регулярное выражение содержит "с Pattern.compile

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

который извлекает все URL из файла CSS

Я использую этот код, однако я получаю сообщение об ошибке:

Pattern p = Pattern.compile("url\(\s*(['\"]?+)(.*?)\1\s*\)"); 
     Matcher m = p.matcher(cssText); 
     while (m.find()) { 
      println m.group() 
     } 

Как вы можете заметить, что я добавить \ к Esacpe ". Но напрасно

ответ

3

Вы должны использовать \\ вместо \ в Java регулярное выражение:

Pattern p = Pattern.compile("url\\(\\s*(['\"]?+)(.*?)\\1\\s*\\)"); 
  • первый \ для побега из строкового объекта
  • второй \ для спасаясь от подстилающей регулярных выражений
Смежные вопросы