如何从Lua中的URL中提取youtube视频ID

时间:2013-12-04 19:27:30

标签: string lua lua-patterns

我需要从Lua字符串变量中的URL中提取YouTube视频ID(例如brSU-lAACiA)。

local string = "a:2:{s:8:\"td_video\";s:60:\"http:\/\/www.youtube.com\/watch?v=brSU-lAACiA&feature=autoshare\";s:13:\"td_last_video\";s:60:\"http:\/\/www.youtube.com\/watch?v=brSU-lAACiA&feature=autoshare\";}"

该模式应该是什么?

2 个答案:

答案 0 :(得分:2)

我想我明白了。

local string = "a:2:{s:8:\"td_video\";s:60:\"http:\/\/www.youtube.com\/watch?v=brSU-lAACiA&feature=autoshare\";s:13:\"td_last_video\";s:60:\"http:\/\/www.youtube.com\/watch?v=brSU-lAACiA&feature=autoshare\";}"

pattern = "v=(...........)"

local vidid =   string.match(string, pattern)

因为Youtube视频ID只有11个字符,所以有11个点。我不是制作这些模式的专家,所以如果还有其他更简单的方法,请与我分享。

答案 1 :(得分:1)

您自己的解决方案运行正常,但Youtube决定使用不完全 11 字符的视频ID的时间可能会到来,这是您的替代解决方案:

local vidid = string.match(string, "%?v=(.-)&")

模式"%?v=(.-)&"匹配字符?,后跟v=,后跟0个或更多字符,然后以&结尾。捕获v=&之间的字符,注意使用-进行非贪婪匹配。