⊗ppPsRgBTS 15 of 84 menu

Análise de Blocos em Duas Etapas usando Expressões Regulares em PHP

Ao trabalhar com expressões regulares, não tente resolver um problema complexo com uma única expressão. É melhor aplicar várias expressões regulares sequencialmente.

Vamos ver um exemplo. Suponha que temos o seguinte código:

<p> --- </p> <main class="header"> <p> +++ </p> <p> +++ </p> </main>

Suponha que precisamos extrair todos os parágrafos da tag main. Vamos fazer isso em duas etapas: primeiro, obtemos o conteúdo da tag main e, depois, dentro desse conteúdo, procuramos pelos parágrafos.

Então, primeira etapa. Suponha que o texto de toda a página esteja armazenado na variável $str1. Vamos obter o conteúdo da tag main:

<?php preg_match('#<main[^>]*>(.+?)</main>#su', $str1, $match1); ?>

Vamos verificar se capturamos o texto correto:

<?php $str2 = $match1[1]; var_dump($str2); ?>

Agora, no texto obtido, vamos encontrar todos os parágrafos:

<?php preg_match_all('#<p[^>]*>(.+?)</p>#su', $str2, $match2, PREG_PATTERN_ORDER); ?>

Vamos verificar se encontramos os textos dos nossos parágrafos:

<?php var_dump($match2[1]); ?>

Extraia todas as tags h2 da tag aside:

<main> <h2>---</h2> </main> <aside> <h2>+++</h2> <p> text </p> <h2>+++</h2> <p> text </p> <h2>+++</h2> <p> text </p> </aside>
bydeenesfrptru