下面是我的正则表达式:-
\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b
当请求 url 是 typehttp://www.example.com/
时,最后一个字符不会在我的较短 url 中替换,/
而是附加在末尾。
正则表达式无法找到最后一个/
.
请帮助解决这个问题。
下面是我的正则表达式:-
\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b
当请求 url 是 typehttp://www.example.com/
时,最后一个字符不会在我的较短 url 中替换,/
而是附加在末尾。
正则表达式无法找到最后一个/
.
请帮助解决这个问题。
我认为 / 将是一个单词边界,所以如果添加一个 ? 到 and,所以它写着:
\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b?
关于什么:
if(url.endsWith("/"))
url = url.substring(0,url.length()-1);
或者如果您需要使用正则表达式,您可以执行以下操作:
url = url.replaceAll("(\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*)/(\\b?)","$1$2");
你可以简单地使用:
url = url.replaceAll("\/+$","");