Publicidade cabeçário

sexta-feira, 21 de dezembro de 2012

PHP RegEx - Metacaracter Retrovisor

Como o nome sugere ele busca palavras repetidas atrás dele! Isso é muito útil para achar termos repetidos. O retrovisor é representado por:

 \n ( barra ene) onde n pode ser um valor de 1 a 9.

Exemplo: para procurar uma palavra pula-pula usamos
                          (pula)-\1

O retrovisor pode ser lembrado também como um link ou um ladrão, pois copia o texto do grupo.


Retrovisor, é bom usar
Retrovisor, é bom usar
fonte da imagem:joaosilvio.blogspot.com

       Muitos perguntarão mais o \ (barra) não tira o valor das metacaracteres? Sim das metacaracteres, não de números, alias ele deixa literal e tira o "algo" especial, números não tem isso, mais nesse caso eles viram retrovisores, ficou claro? um \n seria um \n agora um \1 vira um retrovisor, até um \9.  

O retrovisor só pode ser utilizado em grupos não se esqueçam disso.

O conteúdo sobre retrovisores é muito escasso na internet, por isso vou colocar aqui mais uns belos exemplos encontrados no guia de consulta rápida:

([A-Za-z]+)-\1 consulta qualquer palavra repetida desde que tenha - (pula-pula, biro-biro, etc)


([A-Za-z]+)-?\1 consulta qualquer palavra repetida com ou sem - (bombom, quero-quero, etc)

Bacana ein?! Agora podemos criar ou procurar palavras repetidas num texto inteiro assim:

([A-Za-z]+) \1 e ele me retorna tudo o que se repete

E o grãn finaliii com um acréscimo pequeno podemos agora "trazer" a palavra inteira e não só a parte que repete!

\b([A-Za-z]+) \1\b


para saber mais sobre Metacaracteres:
Hierarquia  
Metacaracter Ponto 
Metacaracter Barra
Metacaracter Barra Vertical
Metacaracter Barra Letra 
Metacaracter Parenteses


fonte: <Expressão Regular - Guia de Consulta Rápida>
adaptado: arroyo, gabriel.