Как я могу получить расширение от URL, используя Ruby 1.8.7? - PullRequest
0 голосов
/ 11 января 2012

Я хочу найти расширение .html по этому URL:

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

Ответы [ 3 ]

2 голосов
/ 11 января 2012

Может быть, что-то вроде этого:

URI.parse(url).query[/\.\w+/]
0 голосов
/ 11 января 2012

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.

0 голосов
/ 11 января 2012

Общий ответ для большинства языков программирования (я не рубиновый парень) -

String.substring(String.lastIndexOf("."), String.length);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...