“搜索并替换”/&引用;在url的末尾';s在java中使用正则表达式

“搜索并替换”/&引用;在url的末尾';s在java中使用正则表达式,java,regex,pattern-matching,Java,Regex,Pattern Matching,下面是我的正则表达式:- \\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b 当请求url的类型为http://www.example.com/,我的简短url中的最后一个字符不会被替换,/追加在末尾 正则表达式无法找到最后一个/ 请提供帮助。如果您只想替换尾随的/(这是您的问题直接提出的问题),您只需执行以下操作: url = url.substring(0, url.lastIndexOf('

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

\\bhttps?://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\\b
当请求url的类型为
http://www.example.com/
,我的简短url中的最后一个字符不会被替换,
/
追加在末尾

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


请提供帮助。

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

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

记得经常使用。

我认为/可能是一个单词边界,所以如果添加一个?到和,它是这样写的:

\\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("\/+$","");

为什么不直接使用
if(myString.endsWith(“/”)
?@vakimshaar,但我想要注册表,它们增加了复杂性,让我便秘。@vakimshaar-它们增加了工作安全性。让代码变得如此复杂,只有你才能理解它是如何工作的!这将删除之前的/if not finishing by/is it rocket science,以便OP在此语句之前添加
if
条件?这是有效的。它在结尾处替换了/。谢谢你,埃德文+我对你的答案有信心。