ruby - 如何使用 gsub 提取 youtube 视频的 ID?

标签 ruby regex string gsub

我必须提取 http://www.youtube.com/watch?v= aNdMiIAlK0g 来自此网址的视频 ID。有人知道如何使用 gsub 和 regex 做到这一点吗?

最佳答案

您可以将 v 参数与此正则表达式匹配:

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 - 如何使用 gsub 提取 youtube 视频的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4274367/

相关文章:

python - 使用正则表达式提取特定行下方的行上的数字?

java - 正则表达式在java中不起作用

java - 如何检测一个字符串是否包含至少一个特定语言的字符?

Ruby DSL(领域特定语言)存储库、示例

r - 根据获取前一行的 if 条件将列分成两部分

Ruby递归替换数组

Python 字符串模式

C - 不打印出整个字符串

ruby - 我应该将非 Ruby 文件放在我的 gem 中的什么位置?

ruby-on-rails - 将数据迁移到生产数据库 Rails 的最佳实践?