[SP-pm] REGEXP para encontrar uma PALAVRA que esteja fora de uma determinada TAG

Daniel de Oliveira Mantovani daniel.oliveira.mantovani at gmail.com
Tue May 18 11:17:00 PDT 2010


Não use Expressões Regulares para manipular HTML. Você vai se
prejudicar e muito se fizer isso, você pode fazer de uma maneira muito
simples! Nem precisa saber Expressões Regulares.

http://search.cpan.org/~mirod/HTML-TreeBuilder-XPath-0.11/lib/HTML/TreeBuilder/XPath.pm

Imagina, você faz com Expressões Regulares, daqui algum tempo você
precisa fazer manutenção no código, impossível! E outra coisa HTML não
é regular, ele pode mudar sempre, se o HTML mudar você irá ter que
fazer tudo de novo, dessa maneira "demorada/suja" com Expressões
Regulares.

Se você estiver utilizando o HTML::TreeBuilder::XPath que usa a
linguagem XPath, se o HTML mudar você arruma rapidinho, ele torna o
código limpo e fácil de fazer manutenção.


[]'s

2010/5/18 Fernando <fernandolouis em terra.com.br>:
> Pessoal estou com a seguinte situação:
>
> Quero fazer uma expressão regular que faça uma substituição de terminada palavra no texto, desde que ela não esteja dentro de uma específica TAG HTML.
>
> Exemplo:
>
> $texto = "<span class=normal> texto qualquer, texto qualquer e há uma palavra aqui <span class=destaque>isto é um texto e há uma palavra aqui</span> continuação de um texto qualquer.</span>";
>
> desejo fazer uma REGEXP que substitua "palavra" por "WORD", desde que "palavra" não esteja dentro da tag: <span class=destaque></span>
>
> então em $texto deverá conter o seguinte, após a substituição:
>
> $texto = "<span class=normal> texto qualquer, texto qualquer e há uma WORD aqui <span class=destaque>isto é um texto e há uma palavra aqui</span> continuação de um texto qualquer.</span>";
>
> Recapitulando:
> Percebam que somente quero que seja substituída por "WORD" a palabra-chave "palavra" que está fora da tag <span class=destaque></span>.
>
> Tentei usar expressões constantes estendidas, mas não consegui.
>
> []s,
> Fernando
>
>
> __________ Information from ESET NOD32 Antivirus, version of virus signature database 5125 (20100518) __________
>
> The message was checked by ESET NOD32 Antivirus.
>
> http://www.eset.com
>
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm



-- 
"If you’ve never written anything thoughtful, then you’ve never had
any difficult, important, or interesting thoughts. That’s the secret:
people who don’t write, are people who don’t think."


More information about the SaoPaulo-pm mailing list