Preg_replace要在段落中嵌入代码的YouTube视频字符串

时间:2013-06-25 11:30:13

标签: php youtube preg-replace

我有preg_replace的这种模式。

#<a>(?:href="https?://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/a>#x

但是我需要改变它,对于这种情况。

<p>http://www.youtube.com/watch?v=s5bgJSdH544(<br/>)</p>

有人可以帮助我吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

这有效:

$string = '<p>http://www.youtube.com/watch?v=s5bgJSdH544(<br/>)</p>';

if(preg_match('#<(?:a|p)>(?:href="https?://|http://)?(?:www\.)?(?:youtu\.be/|youtube\.com(?:/embed/|/v/|/watch?.*?v=))([\w\-]{10,12}).*<\/(?:a|p)>#x', $string)){ 
    echo 'Match found.';
}else{
    echo 'No match found.';
}
  • 用(?:a | p)
  • 替换开始和结束锚标签中的a
  • 在第二组中添加了一个或条件:(?:href =“https?:// | http://)?
  • 表达式末尾附近的。*已经处理了添加的(<br/>)部分。