使用java中的正则表达式搜索并替换url末尾的“/”

时间:2012-06-08 08:17:03

标签: java regex pattern-matching

以下是我的正则表达式: -

\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b

当请求网址为http://www.example.com/类型时,我的缩短网址中不会替换最后一个字符,最后会附加/

正则表达式无法找到最后一个/

请帮忙解决这个问题。

4 个答案:

答案 0 :(得分:1)

我认为/将是一个单词边界,所以如果添加一个,它可能会更好吗?到了,所以它写着:

\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b?

答案 1 :(得分:1)

怎么样:

if(url.endsWith("/"))
  url = url.substring(0,url.length()-1);

或者如果您需要使用正则表达式,您可以执行以下操作:

url = url.replaceAll("(\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*)/(\\b?)","$1$2");

答案 2 :(得分:0)

如果您想要的只是替换尾随的/(这是您的问题直接询问的话),您可以这样做:

url = url.substring(0, url.lastIndexOf('/'));

请经常记住KISS

答案 3 :(得分:0)

您可以使用:

url = url.replaceAll("\/+$","");