如何使用正则表达式从字符串中提取路径

时间:2017-08-07 11:01:52

标签: java regex

如何从以下字符串中提取/path/index.html

url("/path/index.html")
url(/path/index.html)

我使用以下正则表达式,但不能正常工作。

Pattern.compile("\\b(href=|url\\()([\"\'])(([^/]+://)([^/<>]+))?([^\"\'>]*)([\"\']|\\))", Pattern.CASE_INSENSITIVE | Pattern.CANON_EQ);

2 个答案:

答案 0 :(得分:0)

就像上面提到的一些人一样,最好使用内置的URI帮助程序类。但是,如果你真的需要使用正则表达式(并且你提供的字符串都是可用的情况),这样的事情应该为你做:

/url\("?(.*?)"?\)/

在java中将模式作为字符串传递时,它应该看起来像这样:

"url\\(\"?(.*?)\"?\\)"

然后,您可以在匹配的组中找到您要查找的字符串。

答案 1 :(得分:0)

这将满足您的要求。

 String url = "https://stackoverflow.com/questions/45545336/how-extract-path-from-string-using-regex";
 String[] pieces = url.replaceFirst("://", "/").split("/");