我希望通过以下内容获取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
答案 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中作为数组