如何从网址中删除随机多余的斜杠?

问题描述:

如何从网址中删除随机多余的斜线或只是验证它?如何从网址中删除随机多余的斜杠?

例如,

有效报表

http://domain.com/url/url2

https://domain.com/url/url2

www.domain.com/url/url2

无效声明:

http://domain.com//url/url2

https://domain.com/////url/url2

www.domain.com/url/////////url2

感谢您的帮助!

使用正则表达式:

require 'uri' 
url = URI.parse('https://domain.com/////url/url2') 
url.path.gsub! %r{/+}, '/' 
p url.to_s 
+0

叶氏,谢谢。 但是这对于“http://”是不正确的,因为它有两个斜杠 – TiSer 2013-04-26 13:02:24

+0

这会在模式部分(例如'https://')之后崩溃基本的双斜杠,不是吗?更好地使用'%r {([^:/])/ +},'$ 1 /''。 – collapsar 2013-04-26 13:03:35

+0

啊,是的。固定只做路径。 – 2013-04-26 13:03:57

这种模式做的工作(使用HTTP(S)或没有):

"https://domain.com/////url/url2".gsub! %r{(?<!:)/+(?=/)}, ''