URL からサフィックスを抽出する必要があります。つまり、次のことを意味します。
http://google.com/sports/golf => スポーツ/ゴルフ http://yahoo.com/blog?id=7 => blog/id=7
正規表現(ルビースタイル)でそれを達成するにはどうすればよいですか?
ありがとうございました
URL からサフィックスを抽出する必要があります。つまり、次のことを意味します。
http://google.com/sports/golf => スポーツ/ゴルフ http://yahoo.com/blog?id=7 => blog/id=7
正規表現(ルビースタイル)でそれを達成するにはどうすればよいですか?
ありがとうございました
URI
でモジュールを使用します.path + .query
。
uri = URI("http://google.com/sports/golf")
uri.path + "/" + uri.query
これを試して:
irb(main):011:0> /(?:http:\/\/\w+\.\w+\/)(.+)/.match("http://yahoo.com/blog?id=7")[1]
=> "blog?id=7"
irb(main):012:0> /(?:http:\/\/\w+\.\w+\/)(.+)/.match("http://google.com/sports/golf")[1]
=> "sports/golf"
irb(main):013:0>
以下はどうですか: :)
require 'uri'
p URI.split("http://google.com/sports/golf").compact.drop(2).join("/")
p URI.split("http://yahoo.com/blog?id=7").compact.drop(2).join("/")
または、
require 'uri'
a = ["http://google.com/sports/golf","http://stackoverflow.com/questions/15766337/extract-suffix-from-url-regex/15766456#15766456","http://yahoo.com/blog?id=7"]
a.each { |url| p URI.split(url).compact.drop(2).join("/") }
出力:
"/sports/golf"
"/questions/15766337/extract-suffix-from-url-regex/15766456/15766456"
"/blog/id=7"