0


0

rubyのURLのWebページ部分を削除する正規表現

URLのWebページ部分を削除しようとしています

例えば、

www.example.com/home/index.html

to

www.example.com/home

任意の助けをいただければ幸いです。 ありがとう

3 Answer


9


可能であれば、正規表現を使用しないことをお勧めします。 https://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 [クトゥルフを呼び出すことができます]。 代わりに、標準ライブラリの一部である `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"


0


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


正規表現を使用することに心を向けており、URLが非常に単純であることがわかっている場合、 `(。)/.`を使用してURLの最後の/の前のすべてをキャプチャできます。

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"