我为我的页面编写了一些简单的解析器,并且遇到了一些问题。
HTML文字:
<p>some text</p><p>another text</p>
如果我尝试使用类似的东西:
preg_split("#<p>#",$string);
我的结果没有<p>
,这非常非常糟糕。 (仅存在</p>
)
也许我可以将此字符串拆分为数组,但不要删除</p>
?
答案 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>