从url(regex)中提取后缀

时间:2013-04-02 14:10:58

标签: ruby regex

我需要从url中提取后缀,意思是:

http://google.com/sports/golf =>运动/高尔夫 http://yahoo.com/blog?id=7 =>博客/ ID = 7

我怎样才能用正则表达式(ruby风格)来实现它?

谢谢

3 个答案:

答案 0 :(得分:2)

URI模块与.path + .query一起使用。

uri = URI("http://google.com/sports/golf")
uri.path + "/" + uri.query

答案 1 :(得分:1)

以下如何::))

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"

答案 2 :(得分:1)

试试这个:

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>