PHP,preg_match,选择许多div标签的一部分

时间:2011-04-29 20:47:07

标签: php html-parsing pcre

所以我需要将整个div与类“1”一起使用,但它会在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>

2 个答案:

答案 0 :(得分:2)

Regexp并不是那么聪明,可以计算你打开了多少个标签,需要在停止匹配之前关闭它们。它在</div>的第一次出现时停止。如果您想要将标签作为真实标签而不是字符串来访问,请尝试使用真正的HTML解析器。

答案 1 :(得分:0)

正则表达式不应该用于解析XML,HTML,“BBCode”,JSON等文档...... 您应该寻找真正的DOM解析器,例如PHP's DOM extension