PHP, preg_match, выбрать часть из многих тегов div - PullRequest
0 голосов
/ 30 апреля 2011

, поэтому мне нужно взять весь 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 ]

2 голосов
/ 30 апреля 2011

Регулярные выражения не настолько умны, чтобы подсчитывать, сколько тегов вы открыли и должны быть закрыты перед прекращением матча. Останавливается при первом появлении </div>. Попробуйте использовать настоящий html-парсер, если хотите получить доступ к тегам как к реальным тегам, а не к строкам.

0 голосов
/ 30 апреля 2011

Регулярные выражения не должны использоваться для анализа документов, таких как XML, HTML, "BBCode", JSON ... Вы должны искать настоящий парсер DOM, например расширение DOM PHP

...