怎么用REGEX模式说“或”?

时间:2012-03-01 22:40:35

标签: php regex

我正试图在一段html中找到所有视频:

preg_match_all('[<iframe*]', $this->textile_text, $video_matches);

我正在使用PHP。

现在我只匹配iframe标签,我还需要查找嵌入和对象标签。这些是我能想到嵌入在html中的视频的唯一方式。

我怎么说“或”这样才有用呢?

preg_match_all('[<iframe*] OR [<embed*] OR [<object*]', $this->textile_text, $video_matches);

此外,如果有人能想到更好的REGEX模式来检测视频,那就太好了,因为我的相当基础。

修改

这产生了这个输出:

preg_match_all("(iframe|embed|object)", $this->textile_text, $video_matches);


Array
(
    [0] => Array
        (
            [0] => object
            [1] => embed
            [2] => embed
            [3] => embed
            [4] => embed
            [5] => object
            [6] => iframe
            [7] => embed
            [8] => iframe
            [9] => iframe
            [10] => embed
            [11] => iframe
            [12] => iframe
            [13] => embed
            [14] => iframe
            [15] => iframe
            [16] => embed
            [17] => iframe
            [18] => iframe
            [19] => embed
            [20] => iframe
            [21] => iframe
            [22] => embed
            [23] => iframe
            [24] => iframe
            [25] => embed
            [26] => iframe
        )

)

应该是:

Array
(
    [0] => Array
        (
            [0] => <iframe
            [1] => <iframe
            [2] => <iframe
            [3] => <iframe
            [4] => <iframe
            [5] => <iframe
            [6] => <iframe
            [7] => <embed        
         )

)

1 个答案:

答案 0 :(得分:1)

我认为这可以满足您的需求。

(iframe|embed|object)

根据文档,这应该匹配这三个单词中的一个。但是,我没有访问PHP特定版本的reg-ex来实现这一目标。