回答
未經測試,但應該工作:
preg_match('/http:\/\/(?:player\.)?vimeo\.com\/(?:moogaloop\.swf\?clip_id=|video\/)/',$string)
其中$string
是你對任何匹配。
此正則表達式將兩個工作(測試):
preg_match('#http://(\w+.)?vimeo.com/(video/|moogaloop\.swf\?clip_id=)\w+#i', $content);
更新
爲了捕捉clip_id
使用這種調整正則表達式:
preg_match('#http://(?:\w+.)?vimeo.com/(?:video/|moogaloop\.swf\?clip_id=)(\w+)#i', $content, $match);
$match[1]
包含剪貼ID
基本上在每個'()'內添加'?:'表明它不會顯示在$ match數組中。
這一項工作,但是搜尋匹配是這樣的: 陣列 ( [0] =>陣列 ( [0] => HTTP://www.vimeo .com/moogaloop.swf?clip_id = 1018674 [1] => http://www.vimeo.com/moogaloop.swf?clip_id=1018674 ) [1] =>陣列 ( [0] => www。 [1] => www。 ) [2] =>數組 ( [0] => moogaloop.swf?clip_id = [1] => moogaloop.swf?clip_id = ) ) – 2011-03-15 19:51:25
是沒有什麼辦法可以捕獲clip_id? – 2011-03-15 19:52:10
當然有。查看更新。 – RDL 2011-03-15 20:14:13
function getVimeoInfo($link)
{
if (preg_match('~^http://(?:www\.)?vimeo\.com/(?:clip:)?(\d+)~', $link, $match))
{
$id = $match[1];
}
else
{
$id = substr($link,10,strlen($link));
}
if (!function_exists('curl_init')) die('CURL is not installed!');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://vimeo.com/api/v2/video/$id.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
$output = unserialize(curl_exec($ch));
$output = $output[0];
curl_close($ch);
return $output;
}
- 1. Vimeo的正則表達式模式
- 2. 正則表達式:簡單的搜索正則表達式?
- 3. 正則表達式:簡單的Java正則表達式問題
- 4. 沒有正則表達式庫的簡單正則表達式?
- 5. 來自嵌入代碼或來自URL正則表達式的YouTube Vimeo視頻ID正則表達式RegEx
- 6. 簡單的正則表達式模式
- 7. 正則表達式簡單的模式
- 8. 簡單的Vimeo正則表達式:如何識別有效的視頻網址,但忽略用戶的網址?
- 9. YouTube視頻ID的正則表達式
- 10. 簡單的Python的正則表達式
- 11. 簡單的正則表達式的Javascript
- 12. 簡單的JavaScript正則表達式
- 13. 簡單的PHP正則表達式
- 14. 正則表達式的簡單URL
- 15. 簡單的正則表達式問題
- 16. 簡單的正則表達式問題
- 17. 簡單的正則表達式否定
- 18. 簡單的正則表達式
- 19. 簡單的正則表達式匹配
- 20. gsub中的簡單正則表達式
- 21. 簡單的正則表達式調整
- 22. 簡單的Java正則表達式不
- 23. 簡單的正則表達式C#
- 24. python中的簡單正則表達式
- 25. 簡單的正則表達式PHP
- 26. 一個簡單的正則表達式
- 27. 非常簡單的正則表達式
- 28. 很簡單的正則表達式
- 29. 一個簡單的正則表達式
- 30. 簡單的正則表達式匹配
刮擦是邪惡的。收集您自己的內容。 – 2011-03-15 19:38:34
如何編寫2個表達式,每個表達式一個?另外,你寫過什麼嗎?如果你寫了一個RE,那麼糾正你的RE會容易些。 – Abbas 2011-03-15 19:38:39
@Tomalak - 誰說他在刮?也許他想編寫一個檢測vimeo鏈接的CMS? – Cfreak 2011-03-15 19:41:32