标题可能不合适,但我想做的是在某些条件下删除网址。我想创建一个将丢弃的正则表达式' /'在链接的末尾。
例如
http://stackoverflow.com/questions/ask/
to
http://stackoverflow.com/questions/ask
我能够通过这个^(.*)\/
(example)来实现这个目标,但现在我需要改变,而且我不确定它应该是什么样的。
基本上,我需要的改变是不要触摸' /'如果是主页:
http://stackoverflow.com/ stays http://stackoverflow.com/
http://stackoverflow.com/questions/ changes to ttp://stackoverflow.com/questions
从我的观点来看,它假设在两个' /'之间查看网址是否以文字结尾?并且没有任何'但是到目前为止我没有达到这个条件。
它可能看起来怎么样?
修改
某些网址可能不包含http或https,因此对我来说,如果正则表达式正则表达式可用于普通文本,则完全可以。
答案 0 :(得分:0)
如果网址以http://或https://开头,您可以使用以下模式。
(http[s]*://.*?/.*)/$
答案 1 :(得分:0)
此过程可以提供帮助:
^(http[s]?:\/\/[^\/]*)(.*)\/
必填网址=第1组+第2组。
if Group 2 empty then
1. It is main Url
2. Add "/" at the end
else
1. It is **not** main URL
2. Keep it as it is
<强> [Regex Demo] 强>
答案 2 :(得分:0)
如果它只是一个尾随字符,你就是想要丢弃正斜杠,如果它在你的网站上表示某种路径,那就保留它。
所需要的只是检查正斜杠是否是最后一个字符(我非常确定这是最简单的方法)。
(?(?=\/$)(.+)\/)
这个正则表达式使用if语句来检查正斜杠是否是最后一个字符,并且在这种情况下匹配所有内容直到正斜杠。
答案 3 :(得分:0)
答案 4 :(得分:0)
…按照您当前的逻辑,可以使用的模式为/^(?!(?:[^:]+:\/\/)?[^\/]+\/$)(.*)\/$/
。或排除空格:/^(?!(?:[^\s:]+:\/\/)?[^\/\s]+\/$)(.*)\/$/
–WiktorStribiżew