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

标签 ruby regex malformed url-parsing

我在这里想要实现的是假设我们有两个示例 URL:

url1 = "http://emy.dod.com/kaskaa/dkaiad/amaa//////////"
url2 = "http://www.example.com/"

如何提取精简的 URL?

url1 = "http://emy.dod.com/kaskaa/dkaiad/amaa"
url2 = "http://http://www.example.com"
Ruby 中的

URI.parse 可以清除某些类型的格式错误的 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/也是如此

最佳答案

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

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

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

希望这对您有所帮助。

关于ruby - 如何从 Ruby 中的 URL 中删除多个尾部斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765483/

相关文章:

ruby - 在不安装 gems 的情况下更新 Gemfile.lock

ruby - 加载错误 : cannot load such file -- rspec/core/rake_task

installation - CondaValueError : Malformed version string '~' : invalid character(s)

macos - Darwin 10.15 上的自修改代码导致 "malformed mach-o image"?

c# - 在格式略有错误的 XML 上使用 C# 的 XmlReader

ruby - 如何用ruby解压一个文件

ruby-on-rails - 在启动文件中加载环境变量

python - 如何根据正则表达式检索 HTML 标签

python - 在字符串中查找单词的方法

javascript - 将 Javascript 解决方案转换为函数式编程方法