PHP,preg_match,选择许多div标签的一部分
所以我需要使用类“1”的整个div,但它停在div类“1.1”结尾,所以我想从中得到:
<head>
</head>
<body>
<div class="1">
<p>blah blah blah</p>
<div class="1.1">
trolololol
</div>
<div class="1.2">
trolo2lolo
</div>
</div>
</body>
只有这个:
<div class="1">
<p>blah blah blah</p>
<div class="1.1">
trolololol
</div>
<div class="1.2">
trolo2lolo
</div>
</div>
但现在我只得到:
<div class="1">
<p>blah blah blah</p>
<div class="1.1">
trolololol
</div>
so i need to take the whole div with class "1" but it stops at the div class "1.1" ending so i want to get from this:
<head>
</head>
<body>
<div class="1">
<p>blah blah blah</p>
<div class="1.1">
trolololol
</div>
<div class="1.2">
trolo2lolo
</div>
</div>
</body>
only this:
<div class="1">
<p>blah blah blah</p>
<div class="1.1">
trolololol
</div>
<div class="1.2">
trolo2lolo
</div>
</div>
but for now i get only:
<div class="1">
<p>blah blah blah</p>
<div class="1.1">
trolololol
</div>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正则表达式并不能智能地计算您已打开的标签数量以及在停止比赛之前需要关闭的标签数量。它在第一次出现
时停止。如果您想将标签作为真正的标签而不是字符串来访问,请尝试使用真正的 html 解析器。
Regexp are not that intelligent to count how many tags you have opened and need to be closed before stopping the match. It stops at the first occurence of
</div>
. Try to use a real html parser if you want to access tags as real tags and not strings.正则表达式不应用于解析 XML、HTML、“BBCode”、JSON 等文档...
你应该寻找一个真正的 DOM 解析器,例如 PHP 的 DOM 扩展
Regular expressions should not be used to parse documents like XML, HTML, "BBCode", JSON...
You should look for a real DOM parser, for example PHP's DOM extension