正则表达式匹配来自vimeo embed url的所有域和视频ID

时间:2014-01-23 15:50:23

标签: php regex

我希望通过以下内容获取dailymotion视频网址和视频ID的多个匹配项

<iframe style="clear: both; display: block;" 
src="//www.dailymotion.com/embed/video/x1a6ldm" 
height="315" width="420" allowfullscreen="" frameborder="0"></iframe>
<iframe style="clear: both; display: block;" 
src="//www.dailymotion.com/embed/video/x1a6k8x" 
height="315" width="420" allowfullscreen="" frameborder="0"></iframe>
<iframe style="clear: both; display: block;" 
src="//www.dailymotion.com/embed/video/x1a6k1i" 
height="315" width="420" allowfullscreen="" frameborder="0"></iframe>

我尝试了以下所有代码,但没有人为我工作

preg_match_all ("/^.+dailymotion.com\/(video|embed\/video)\/([^_]+)[^#]*(#video=([^_&]+))?/", $content, $dailymotionmatches, PREG_SET_ORDER);

preg_match_all ("/http:\/\/www\.dailymotion\.com\/video\/([^_]+)/", $content , $dailymotionmatches, PREG_SET_ORDER);

preg_match_all ('/http:\/\/www\.dailymotion\.com\/video\/([^_]+)/', $content , $dailymotionmatches, PREG_SET_ORDER);

我也尝试过stackoverflow的最大问题,但没有为我的案例找到任何解决方案。我对正则表达式很新。

我正在测试它here

1 个答案:

答案 0 :(得分:1)

以下正则表达式似乎工作正常。

(www\.dailymotion.com\/embed\/video\/.*?)"

http://www.phpliveregex.com/p/3gO

基于您的代码的使用示例:

preg_match_all ('(www\.dailymotion.com\/embed\/video\/.*?)"', $content, $dailymotionmatches, PREG_SET_ORDER);

<强>更新

要获取视频ID本身,请使用以下正则表达式

(www\.dailymotion.com/embed/video/(.*?))"

preg_match_all ('(www\.dailymotion.com\/embed\/video\/.*?)"', $content, $dailymotionmatches, PREG_SET_ORDER);

视频ID将在结果位置2中作为数组