java中的打开关闭括号之间的字符串正则表达式

时间:2016-02-02 06:42:27

标签: java regex

我有一个字符串如下,

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

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

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

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)));
}

只打印Regex是 - 。

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

2 个答案:

答案 0 :(得分:0)

使用此代码

Pattern patternUrl = Pattern.compile("\\(([^)]+)\\)", 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)));
        }

答案 1 :(得分:0)

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