【发布时间】:2011-12-03 08:10:20
【问题描述】:
以前有人问过这个问题,我发现了这个:
但我正在寻找一些稍微不同的东西。
我需要匹配与所有可能的 youtube 链接格式兼容的 Youtube I.D 本身。不只是从 youtube.com 开始。
例如:
http://www.youtube.com/watch?v=-wtIMTCHWuI
http://www.youtube.com/v/-wtIMTCHWuI?version=3&autohide=1
http://youtu.be/-wtIMTCHWuI
http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D-wtIMTCHWuI&format=json
http://s.ytimg.com/yt/favicon-wtIMTCHWuI.ico
http://i2.ytimg.com/vi/-wtIMTCHWuI/hqdefault.jpg
我可以使用一个聪明的策略来匹配与所有这些格式兼容的视频 ID -wtIMTCHWuI。我正在考虑字符计数和匹配=?/.& 字符。
【问题讨论】:
-
您的方法似乎是我会使用的方法。我可能会在 URL 中找到所有“拆分”字符,例如等号、斜杠、& 符号等。然后结果将在一个数组中。从那里我将遍历数组,找出与 YouTube ID 长度相同的字符串。然后,我会通过正则表达式运行它们以剔除所有包含无效字符的字符串。最后,您可以使用 YouTube API 检查该 ID 的视频是否存在(虽然会增加带宽)。
-
不聪明,但
/(\?v=|\/v\/|be\/|v%3d|favicon|vi\/)([a-zA-Z0-9_-]*)/ -
您可能会发现my answer to a similar question 很有帮助。 (尽管我从未见过您问题中的最后两种语法。(即
http://s.ytimg.com和http://i2.ytimg.com)) -
谢谢大家,都非常有帮助。我目前正在尝试 parse_url 的组合,剥离无关字符和计数。