在url中使用正则表达式查找路径参数

时间:2015-02-12 08:44:26

标签: java

从url中找到路径参数的正则表达式是什么?

http://localhost:8080/domain/v1/809pA8
https://localhost:8080/domain/v1/809pA8

想要使用正则表达式从上面的URL中检索值(809pA8),最好使用java。

3 个答案:

答案 0 :(得分:4)

我建议你做一些像

这样的事情
url.substring(url.lastIndexOf('/') + 1);

如果您真的更喜欢正则表达式,那么您可以

Matcher m = Pattern.compile("/([^/]+)$").matcher(url);

if (m.find())
    value = m.group(1);

答案 1 :(得分:1)

我会尝试:

String url = "http://localhost:8080/domain/v1/809pA8";
String value = String.valueOf(url.subSequence(url.lastIndexOf('/'), url.length()-1));

我认为这里不需要正则表达式。

编辑:对不起,我犯了一个错误:

String url = "http://localhost:8080/domain/v1/809pA8";
    String value = String.valueOf(url.subSequence(url.lastIndexOf('/')+1, url.length()));

请参阅此处的代码:https://ideone.com/E30ddC

答案 2 :(得分:0)

对于你的简单案例,正如其他人所说,正则表达式是一种矫枉过正。但是,如果你有更多的案例,这就是你更喜欢正则表达式的原因,那么如果你正在使用Spring,请给出Spring AntPathMatcher#extractUriTemplateVariables的看法。它实际上更适合直接提取路径变量而不是正则表达式。 Here are some good examples