如何从Ruby中的URL中删除多个尾部斜杠

spl*_*ell 7 ruby regex url-parsing malformed

我想在这里实现的是让我们说有两个示例网址:

url1 = "http://emy.dod.com/kaskaa/dkaiad/amaa//////////"
url2 = "http://www.example.com/"
Run Code Online (Sandbox Code Playgroud)

如何提取条带化的URL?

url1 = "http://emy.dod.com/kaskaa/dkaiad/amaa"
url2 = "http://http://www.example.com"
Run Code Online (Sandbox Code Playgroud)

URI.parse 在Ruby中清理某些类型的格式错误的URL,但在这种情况下无效.

如果我们使用正则表达式,然后/^(.*)\/$/删除单斜线/距离url1,是无效的url2.

有人知道如何处理这种类型的URL解析吗?

这里的关键是我不希望我的系统具有http://www.example.com/http://www.example.com被视为两个不同的URL.而且同样适用于http://emy.dod.com/kaskaa/dkaiad/amaa////http://emy.dod.com/kaskaa/dkaiad/amaa/.

Ali*_*kau 26

如果您只需要从url字符串的末尾删除所有斜杠,那么您可以尝试以下正则表达式:

"http://emy.dod.com/kaskaa/dkaiad/amaa//////////".sub(/(\/)+$/,'')
"http://www.example.com/".sub(/(\/)+$/,'')
Run Code Online (Sandbox Code Playgroud)

/(\/)+$/ - 这个正则表达式在字符串的末尾找到一个或多个斜杠.然后我们用空字符串替换这个匹配.

希望这可以帮助.

  • 谢谢Alex.昨天我发现gsub(/\/*$ /)也像crudson提到的那样工作. (2认同)