如何使用正则表达式抓取``标签内的整个内容?

时间:2011-07-31 20:45:39

标签: php regex html-parsing

如何使用regex获取<body>标记内的整个内容?

例如,

<html><body><p><a href="#">xx</a></p>

<p><a href="#">xx</a></p></body></html> 

我想只返回这个,

<p><a href="#">xx</a></p>

<p><a href="#">xx</a></p>

还是其他更好的想法?也许是DOM,但我必须使用saveHTML();,然后它会返回doctypebody标记......

HTML Purifier使用起来很痛苦所以我决定不使用它。我认为正则表达式可能是我灾难的下一个最佳选择。

2 个答案:

答案 0 :(得分:23)

preg_match("/<body[^>]*>(.*?)<\/body>/is", $html, $matches);

$matches[1]将是正文标记的内容

答案 1 :(得分:1)

preg_match("~<body.*?>(.*?)<\/body>~is", $html, $match);
print_r($match);