-1

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

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

当请求 url 是 typehttp://www.example.com/时,最后一个字符不会在我的较短 url 中替换,/而是附加在末尾。

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

请帮助解决这个问题。

4

4 回答 4

1

我认为 / 将是一个单词边界,所以如果添加一个 ? 到 and,所以它写着:

\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b?
于 2012-06-08T08:30:01.733 回答
1

关于什么:

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

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

url = url.replaceAll("(\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*)/(\\b?)","$1$2");
于 2012-06-08T08:31:50.607 回答
0

如果您只想替换尾随/(这是您的问题直接提出的问题),您可以简单地执行以下操作:

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

记得经常亲吻

于 2012-06-08T08:24:18.877 回答
0

你可以简单地使用:

url = url.replaceAll("\/+$","");
于 2012-06-08T09:36:25.220 回答