我有一个字符串如下

String string = "background: transparent url(../../images/oracle-java-logo.png) 0px 0px no-repeat;"


我只想获取url值(../../images/oracle-java-logo.png)。

所以我按如下方式使用String正则表达式,但是我只得到该正则表达式的空值

Pattern patternUrl = Pattern.compile(" url((.*?))", Pattern.CASE_INSENSITIVE);
String string = "background: transparent url(../../images/oracle-java-logo.png) 0px 0px no-repeat;"

Matcher matcher = patternUrl.matcher(string);
if (matcher.find()) {
    System.out.println("Regex is--"+(matcher.group(1)));
}


它仅打印正则表达式为-。

上面的代码有什么问题?希望有人会协助

最佳答案

Pattern patternUrl = Pattern.compile("url(\\(([^)]+)\\))", Pattern.CASE_INSENSITIVE);
    Matcher matcher = patternUrl.matcher(string);
    if (matcher.find()) {
        System.out.println("Regex is--"+(matcher.group(1)));
    }

关于java - Java中右括号之间的字符串正则表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35146749/

10-13 04:20