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



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

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

我使用以下正则表达式,但不起作用。

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

就像上面的一些人已经说过的那样,最好使用内置的 URI 帮助程序类。但是,如果您确实需要为此使用正则表达式(并且您提供的字符串是所有可用的情况(,则应该为您执行此操作:

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

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

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

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

这将满足您的要求。

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

最新更新