使用 preg_split 进行文本解析的问题
我为我的页面编写了一些简单的解析器,但遇到了一些问题。
HTML 文本:
<p>some text</p><p>another text</p>
如果我尝试使用类似以下内容:
preg_split("#<p>#",$string);
我得到的结果没有
,这是非常非常糟糕的。 (仅存在
也许我可以将此字符串拆分为数组,但不要删除 ?
I write some easy parser for my page and have some problem with it.
HTML text:
<p>some text</p><p>another text</p>
If I try use something like:
preg_split("#<p>#",$string);
I have a result without <p>
, and this is very very bad. (only </p>
exist)
Maybe I can split this string to array, but don't remove </p>
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用此构造
(?=
)
,即 正前瞻零宽度断言。该模式不会消耗它匹配的文本。它只会找到字符串之前的位置。这是示例:
You can use this construct
(?=<p>)
which is positive lookahead zero-width assertion. This pattern will not consume the text it matches. It just will find the position before<p>
string. Here is example:就像 Ivan 所说,你应该使用
(?=
)
。只是想补充一点,您可以使用以下内容:
Just like Ivan said, you should use
(?=<p>)
. Just wanted to add that you can useWhich will be: