使用preg_split进行文本解析的问题

时间:2009-10-15 14:32:50

标签: php regex preg-split

我为我的页面编写了一些简单的解析器,并且遇到了一些问题。

HTML文字:

<p>some text</p><p>another text</p>

如果我尝试使用类似的东西:

preg_split("#<p>#",$string);

我的结果没有<p>,这非常非常糟糕。 (仅存在</p>

也许我可以将此字符串拆分为数组,但不要删除</p>

2 个答案:

答案 0 :(得分:4)

您可以使用此(?=<p>) <p> preg_split("#(?=<p>)#",$string); 。此模式不会使用它匹配的文本。它只会找到{{1}}字符串之前的位置。这是一个例子:

{{1}}

答案 1 :(得分:1)

就像伊万说的那样,你应该使用(?=<p>)。只是想补充一点,你可以使用

var $Paragraphs = array_filter(preg_split("/(?=<p>)/", "<p>some text</p><p>another text</p>"));

将是:

[1] => <p>some text</p>
[2] => <p>another text</p>