【发布时间】:2011-02-25 13:26:30
【问题描述】:
我正在尝试使用 preg_match 解析 youtube URL 的视频 ID。我在这个网站上发现了一个似乎有效的正则表达式;
(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+
如图所示:
我的PHP如下,但是不起作用(给出未知修饰符'['错误)...
<?
$subject = "http://www.youtube.com/watch?v=z_AbfPXTKms&NR=1";
preg_match("(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=[0-9]/)[^&\n]+|(?<=v=)[^&\n]+", $subject, $matches);
print "<pre>";
print_r($matches);
print "</pre>";
?>
干杯
【问题讨论】:
-
在您的 RegexBuddy 中,您选择了 Java 作为语言。还有一个“使用”选项卡,您可以单击该选项卡,该选项卡将为您提供正确转义的代码,以用于多种不同的情况。
-
因为其他问题有最佳答案,很好解释。
-
@Toto 如果您看到最新的 cmets,它在某些情况下也无法匹配 - 所以并不是更好的答案