有关preg_match模式的帮助

时间:2010-04-06 15:27:25

标签: php regex web-crawler preg-match

我想解析一个类似这样的html内容:

<div id="sometext">Lorem<br> <b>Ipsun</b></div><span>content</span><div id="block">lorem2</div>

我需要抓住第一个div中的“Lorem<br> <b>Ipsun</b>”。我怎样才能做到这一点?

  

Ps:第一个div里面的html有   多行,这是一篇文章。

由于

2 个答案:

答案 0 :(得分:4)

尝试use regex to parse HTML并不是一个非常好的体验,因为HTML不是常规语言。另一种方法是使用HTML解析器,如Simple HTML DOMDOM库/

简单的HTML DOM示例:

$html = str_get_html('<div id="sometext">Lorem<br> <b>Ipsun</b></div><span>content</span><div id="block">lorem2</div>');
echo $html->find('div[id=sometext]', 0)->innertext;

答案 1 :(得分:0)

假设id已知:

preg_match('#<div id="sometext">(.*?)</div>#s', $text, $match);