Как использовать GSUB для извлечения идентификатора видео YouTube?

StackOverflow https://stackoverflow.com/questions/4274367

  •  28-09-2019
  •  | 
  •  

Вопрос

Я должен извлечь 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)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top