正则表达式网址的一部分

时间:2011-02-01 05:42:36

标签: php regex

所以我试图从youtube的网址获取id ..

这是网址

http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2

然后还有 - 在网址中。

它不会让我发布另一个网址,但它与上面相同,但ID为ucvkO0x-mL4

如何在正常表达式之间抓取视频/和/相关(id)?

我尝试使用txt2re.com,这是我一直使用的,但它不适合这种情况..

谢谢!

4 个答案:

答案 0 :(得分:3)

甚至不需要正则表达式,只需要一个简单的strpossubstr即可。或者像这样使用explode

<?php

$url = 'http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2';

//BY STRPOS/SUBSTR
echo substr($url, 42, strpos($url, '/related', 42) - 42);

//BY EXPLODE
$parts = explode('/', $url);
echo $parts[6];
?>

答案 1 :(得分:1)

(?:.*)videos/(.*?)/related\?v=2

答案 2 :(得分:1)

我就是这样做的

$url = 'http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2';
preg_match('#.*videos/([0-9a-zA-Z_\-]{11})/related.*#', $url, $matches);
print_r($matches);

但是,@ shamittomar对strpossubstr

是正确的

答案 3 :(得分:0)

使用正则表达式,你可以通过

来完成

$ url =“http://gdata.youtube.com/feeds/api/videos/kffacxfA7G4/related?v=2”;

的preg_match( '/视频\ /(+)\ /相关/。',$网址,$匹配);

$ id = $ match [1];