Ruby 从url提取后缀(正则表达式)
我需要从url中提取后缀,意思是: =>运动/高尔夫 =>blog/id=7 我如何用正则表达式(ruby风格)实现这一点 谢谢将模块与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
一起使用.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>