【发布时间】:2015-03-01 22:30:27
【问题描述】:
所以我正在尝试使用正则表达式从 vimeo url 获取视频 ID。
基于此:Get video id from Vimeo url
以下正则表达式应该可以解决问题:
if (preg_match("/https?:\/\/(?:www\.)?vimeo.com\/(?:channels\/(?:\w+\/)?|groups\/([^\/]*)\/videos\/|album\/(\d+)\/video\/|)(\d+)(?:$|\/|\?)/", $videoLink, $id)) {
$videoId = $id[3];
}
但它不起作用,我终其一生都无法弄清楚原因。
Javascript 和 PHP 中的正则表达式有区别吗/我误用了preg_match?我在 Stack Overflow 上环顾了一段时间,但找不到用于从 vimeo url/embed 获取视频 ID 的有效正则表达式。
那里有很多正则表达式,但没有一个显示它们的实现。
【问题讨论】:
-
您的正则表达式在大部分情况下都有效(除了没有捕获 param=test),不确定问题是什么?
-
@l'L'l 当我为任何 vimeo url 运行上面的代码时,它永远不会匹配。它总是以失败的形式返回。我是否正确实施它?
-
$videoLink 的确切值是多少?我使用前面示例中显示的所有 url 尝试了您的代码,它捕获了
11111111。来看看吧:ideone.com/uTIhu4 -
@l'L'l 我发现了这个问题,并用它回复了 Alex 的回答。
-
正则表达式仍应使用该格式;看看我链接的例子。
标签: javascript php regex video vimeo