Ruby 从url提取后缀(正则表达式)

Ruby 从url提取后缀(正则表达式),ruby,regex,Ruby,Regex,我需要从url中提取后缀,意思是: =>运动/高尔夫 =>blog/id=7 我如何用正则表达式(ruby风格)实现这一点 谢谢将模块与一起使用.path+.query uri = URI("http://google.com/sports/golf") uri.path + "/" + uri.query 以下内容如何:) 或者 输出: "/sports/golf" "/questions/15766337/extract-suffix-from-url-regex/15766456/157

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

=>运动/高尔夫 =>blog/id=7

我如何用正则表达式(ruby风格)实现这一点

谢谢

将模块与
一起使用.path+.query

uri = URI("http://google.com/sports/golf")
uri.path + "/" + uri.query
以下内容如何:)

或者

输出:

"/sports/golf"
"/questions/15766337/extract-suffix-from-url-regex/15766456/15766456"
"/blog/id=7"
试试这个:

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> 

你不需要regexp。Ruby在stdlib中有一个
uri
库,它非常适合于此。查看
URI.parse()
你的问题。在什么规则下,
变为
/
?你总是希望结果中有一个斜杠吗?除此之外,URI还将删除任何URI片段,如
sports/golf/?a=b#foo
foo将被删除,但存储在
URI.fragment
中(如果您也需要)
"/sports/golf"
"/questions/15766337/extract-suffix-from-url-regex/15766456/15766456"
"/blog/id=7"
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>