Как использовать GSUB для извлечения идентификатора видео YouTube?
Вопрос
Я должен извлечь http://www.youtube.com/watch?v=.andmiialk0g. идентификатор видео от этого URL. Кто-нибудь знает, как это использовать GSUB и Regex?
Решение
Вы можете сопоставить v
Параметр с этим Regexp:
url[/(?<=[?&]v=)[^&$]+/] # => aNdMiIAlK0g
Начинается с точки зрения ?
или &
и соответствует всему до следующего &
или конец строки. Он работает, даже если есть другие параметры, даже те, кто заканчивается в «V».
Однако более безопасный способ сделать это может быть использование класса URI:
require 'uri'
query_string = URI.parse(url).query
parameters = Hash[URI.decode_www_form(query_string)]
parameters['v'] # => aNdMiIAlK0g
Другие советы
это оно:
ruby-1.9.2-p0 > "http://www.youtube.com/watch?v=aNdMiIAlK0g"[/v=([^&]+)/, 1]
=> "aNdMiIAlK0g"
(Хотя вы можете использовать библиотеку URI, чтобы получить часть запроса и разделить их, используя &
и используйте значение для v
, потому что вышеизложенное запутается, если URL-то вроде http://www.youtube.com/proomo?for_tv=1. и это примет его как v=1
)
Не связан с StackOverflow