假设我有这样一段文字:
<item>
foo bar foo bar
<item> child item </item>
</item>
<item>
second item
<item> second child </item>
</item>
在这里,我想要的是只解析要解析的<item>
s 的两个顶层,并将结果以这样的数组返回给我:
[0] = "foo bar foo bar <item>child item</item>"
[1] = "second item <item>second child </item>";
但是在我的测试中,由于子级<item>
标签与模式匹配,因此它们也被包含在内,并且我得到了一个 4 元素数组而不是我想要的 2 元素数组。
这是我使用的模式:
%<item>(.+)</item>%si
有任何想法吗?
编辑:这不适用于 HTML,它适用于我无法使用任何 dom 解析器的自定义内部脚本语言。所以请建议一个正则表达式解决方案。