如何使用Ruby 1.8.7从URL获取扩展?

时间:2012-01-11 06:20:41

标签: ruby uri

我想从此网址找到扩展程序.html

http://testasp.vulnweb.com/Templatize.asp?item=html/about.html

3 个答案:

答案 0 :(得分:2)

也许是这样的:

URI.parse(url).query[/\.\w+/]

答案 1 :(得分:0)

Ruby有URI模块,它是标准发行版的一部分,加上Addressable gem:

url = 'http://testasp.vulnweb.com/Templatize.asp?item=html/about.html'

require 'uri'
uri = URI.parse(url)
queries = Hash[uri.query.split('&').map{ |q| q.split('=') }]
puts queries['item']

require "addressable/uri"
uri = Addressable::URI.parse(url)
puts uri.query_values['item']

两者都会输出:

html/about.html

跑步时。

URI很方便,但是Addressable非常强大且功能齐全。如果我需要进行大量的URL解析或操作,可以使用Addressable。

获得html/about.html后,您可以通过多种方式提取扩展程序:

path = 'html/about.html'

path[/(\..+)$/, 1] # => ".html"
path.split('.').last # => "html"
File.extname(path) # => ".html"

请注意,使用split会移除.,因此需要再次将html添加到其中。

答案 2 :(得分:-2)

大多数编程语言的通用答案(我不是红宝石) -

String.substring(String.lastIndexOf("."), String.length);