正则表达式PHP如何匹配字符串的内部部分

时间:2014-06-17 00:20:39

标签: php regex

我需要一个php正则表达式,它将使用我的原始字符串

执行以下操作
<div>The quick jumped over <p>[video=xdf890sfadf]</p> the white fence.</div>

<div>The quick jumped over <p><iframe src="http://www.youtube.com/embed/xdf890sfadf?rel=0&amp;vq=hd720" height="365" width="650" allowfullscreen="" frameborder="0"></iframe></p> the white fence.</div>

所以我需要做的就是将视频ID从任何给定的html字符串中拉出来。

我想为此使用preg_replace()函数,但我对使用它的正确正则表达式感到困惑。请帮忙。

1 个答案:

答案 0 :(得分:2)

在SO上进行简单的搜索,应该没问题。只需使用preg_match()即可。考虑这个例子:

$original_string = '<div>The quick jumped over <p>[video=xdf890sfadf]</p> the white fence.</div>';
preg_match('/\[video=([^\]]+)\]/', $original_string, $matches);
if(!empty($matches)) {
    $value = $matches[1];
    $video = $matches[0];
    $new_string = '<div>The quick jumped over <p><iframe src="http://www.youtube.com/embed/'.$value.'?rel=0&amp;vq=hd720" height="365" width="650" allowfullscreen="" frameborder="0"></iframe></p> the white fence.</div>';
    echo $new_string;
}
  

注意:积分转到https://stackoverflow.com/a/8935740/1978142

Sample Output