REGEX匹配x次“<li>此处的任何内容</li>”

时间:2011-07-18 10:11:12

标签: regex

我在PHP中有这样的字符串

<li>bla bla bla bla</li>
<li>hello hello</li>
<li>the brown fox didnt jump</li>
.
.
.
<li>aaaaaaarghhhh</li>

我想得到一个包含第一个X li的字符串(结果字符串中包含li标签)

<li>.....first one....</li>
<li>.....second one....</li>
<li>.................</li>
<li>.....X one....</li>

如何使用REGEX或其他方式完成?

我可以删除

</li>

随后爆炸

<li>

并获取数组的前X个元素,然后在每个元素的开头和结尾再添加li标签,但我认为它太脏...

有更好的想法吗?

2 个答案:

答案 0 :(得分:4)

查看此正则表达式是否适合您(将数字2替换为所需的li数):

((?:<li>.*?<\/li>){2})

答案 1 :(得分:2)

如何使用PHP Simple HTML DOM Parser

将其解析为实际DOM元素

您可以从此处下载脚本:http://sourceforge.net/projects/simplehtmldom/files/

如果您将该脚本加载到当前脚本中,请执行以下操作:

include_once("simple_html_dom.php");

然后它就像:

一样简单
$html = "<li>bla bla bla bla</li>, etc, etc ......";

$list_array = array();

foreach($html->find('li') as $element) {
    $list_array[] = $element->innertext;
}