如何使用正则表达式从div获取内容

时间:2013-07-30 18:23:59

标签: php regex html-parsing

我的字符串如下:

<div class="fck_detail">
    <table align="center" border="0" cellpadding="3" cellspacing="0" class="tplCaption" width="1">
        <tbody>
            <tr><td>
            <img alt="nole-1375196668_500x0.jpg" src="http://l.f1.img.vnexpress.net/2013/07/30/nole-1375196668_500x0.jpg" width="500">                
            </td></tr>
            <tr><td class="Image">
                Djokovic hậm hực với các đàn anh. Ảnh: <em>Livetennisguide.</em>
            </td></tr>
        </tbody>
    </table>
    <p>Riêng với Andy Murray, ...</p>
    <p style="text-align:right;"><strong>Anh Hào</strong></p> 
</div>

我想获得内容。如何使用preg_match编写此模式。请帮帮我

1 个答案:

答案 0 :(得分:0)

如果div中没有​​其他HTML标记,则此正则表达式应该有效:

$v = '<div class="fck_detail">Some content here</div>';
$regex = '#<div class="fck_detail">([^<]*)</div>#';
preg_match($regex, $v, $matches);
echo $matches[1];

这里的实际正则表达式是<div class="fck_detail">([^<]*)</div>。 PHP中使用的正则表达式也需要被正则表达式中没有出现的其他字符所包围(我使用#)。

但是,如果您要解析的是用户提供的任意HTML,则preg_match根本无法执行此操作。完整的HTML解析超出了任何正则表达式的能力,如果您正在解析完整HTML编辑器的输出,那么这就是您所需要的。