Java 在url中使用正则表达式查找路径参数
从url中查找路径参数的正则表达式是什么Java 在url中使用正则表达式查找路径参数,java,Java,从url中查找路径参数的正则表达式是什么 http://localhost:8080/domain/v1/809pA8 https://localhost:8080/domain/v1/809pA8 要使用正则表达式从上述URL检索值(809pA8),最好使用java。我建议您执行以下操作 url.substring(url.lastIndexOf('/') + 1); 如果你真的喜欢正则表达式,你可以 Matcher m = Pattern.compile("/([^/]+)$").mat
http://localhost:8080/domain/v1/809pA8
https://localhost:8080/domain/v1/809pA8
要使用正则表达式从上述URL检索值(809pA8),最好使用java。我建议您执行以下操作
url.substring(url.lastIndexOf('/') + 1);
如果你真的喜欢正则表达式,你可以
Matcher m = Pattern.compile("/([^/]+)$").matcher(url);
if (m.find())
value = m.group(1);
我建议你做些类似的事情
url.substring(url.lastIndexOf('/') + 1);
如果你真的喜欢正则表达式,你可以
Matcher m = Pattern.compile("/([^/]+)$").matcher(url);
if (m.find())
value = m.group(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()));
请参阅此处的代码:我将尝试:
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()));
请参见此处的代码:对于您的简单示例,正如其他人所指出的,regex是一种过度使用。但是,如果您有更多的案例,这就是为什么您更喜欢正则表达式,如果您使用的是Spring,请让Spring看看。它实际上比直接使用正则表达式更好地提取路径变量 对于您的简单案例,正如其他人所指出的,正则表达式是一种过度使用。但是,如果您有更多的案例,这就是为什么您更喜欢正则表达式,如果您使用的是Spring,请让Spring看看。它实际上比直接使用正则表达式更好地提取路径变量 你试过什么了?你看过基于简单字符串函数的替代方法吗?请阅读user3157090。url是,还是?user3157090,你已经发布了49个问题,其中大多数问题的答案完全正确。你应该回去把最好的标记为已接受。你试过什么了?你看过基于简单字符串函数的替代方法吗?请阅读user3157090。url是,还是?user3157090,你已经发布了49个问题,其中大多数问题的答案完全正确。你应该返回并将最好的标记为已接受。更喜欢正则表达式。为什么?这个问题还不够复杂,不需要正则表达式。我更喜欢正则表达式。为什么?这个问题并不复杂到需要正则表达式。这是错误的,因为结束索引(子序列的第二个参数)是独占的。此解决方案遗漏了最后一个字符。那么,为什么要使用
CharSequence.subSequence
而不是String.substring
?对于String.substring
而言,结束索引是可选的(并且您不必使用String.valueOf
)。这只是一种做事的方式,我之前的答案是关于字符串子字符串的,我认为最好给出另一种解决方案,而不是重复前面给出的解决方案。这是错误的,因为结束索引(subSequence的第二个参数)是独占的。此解决方案忽略了最后一个字符。因此,为什么要使用CharSequence.subSequence
而不是String.substring
?对于String.substring
,结束索引是可选的(并且您不必使用String.valueOf
).这只是一种做事的方式,我之前的答案是关于字符串子字符串的,我认为给出另一个解决方案比重复以前给出的解决方案更好。