【发布时间】:2010-09-30 10:23:54
【问题描述】:
我正在尝试删除 URL 的网页部分
例如,
www.example.com/home/index.html
到
www.example.com/home
任何帮助表示赞赏。
谢谢
【问题讨论】:
我正在尝试删除 URL 的网页部分
例如,
www.example.com/home/index.html
到
www.example.com/home
任何帮助表示赞赏。
谢谢
【问题讨论】:
尽可能不要使用正则表达式可能是个好主意。 You may summon Cthulhu。尝试改用标准库中的URI 库。
require "uri"
result = URI.parse("http://www.example.com/home/index.html")
result.host # => www.example.com
result.path # => "/home/index.html"
# The following line is rather unorthodox - is there a better solution?
File.dirname(result.path) # => "/home"
result.host + File.dirname(result.path) # => "www.example.com/home"
【讨论】:
如果您决定使用正则表达式并且您知道您的网址将非常简单,您可以使用(.*)/.* 来捕获网址中最后一个 / 之前的所有内容。
irb(main):007:0> url = "www.example.com/home/index.html"
=> "www.example.com/home/index.html"
irb(main):008:0> regex = "(.*)/.*"
=> "(.*)/.*"
irb(main):009:0> url =~ /#{regex}/
=> 0
irb(main):010:0> $1
=> "www.example.com/home"
【讨论】:
irb(main):001:0> url="www.example.com/home/index.html"
=> "www.example.com/home/index.html"
irb(main):002:0> url.split("/")[0..-2].join("/")
=> "www.example.com/home"
【讨论】:
0..-2会崩溃?