⊗ppPmRgVA 258 of 447 menu

Lookahead em expressões regulares do PHP

Às vezes, é necessário resolver um problema do tipo: encontrar a string 'aaa' e substituí-la por '!', mas apenas se depois de 'aaa' houver 'x', sem substituir o próprio 'x'. Se tentarmos resolver o problema 'diretamente', não conseguiremos:

<?php preg_replace('#aaax#', '!', 'aaax'); // retornará '!', mas deveria ser '!x' ?>

Para resolver a tarefa, é necessária uma maneira de dizer que o 'x' não deve ser substituído. Isto é feito usando colchetes especiais (?= ), que apenas verificam, mas não capturam.

Esses colchetes são chamados de lookahead positivo. Positivo - porque o 'x' (no nosso caso) deve estar presente - só então a substituição ocorrerá.

Vamos aplicar esses colchetes para resolver nossa tarefa:

<?php preg_replace('#aaa(?=x)#', '!', 'aaax'); // retornará '!x' ?>

Existe também o lookahead negativo - (?! ) - que, pelo contrário, diz que algo não deve estar presente. No próximo exemplo, a substituição ocorrerá apenas se depois de 'aaa' não houver 'x':

<?php preg_replace('#aaa(?!x)#', '!', 'aaab'); // retornará '!b' ?>

Dada uma string contendo nomes de funções:

<?php $str = 'func1() func2() func3()'; ?>

Obtenha um array com os nomes das funções a partir da string.

Dada uma string com uma tag:

<?php $str = '<a href="" class="eee" id="zzz">'; ?>

Obtenha um array com os nomes dos atributos desta tag.

Português
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar