[Cascavel-pm] expressão regular

Alceu R. de Freitas Jr. glasswalk3r em yahoo.com.br
Quarta Julho 2 15:19:35 CDT 2003


Realmente está. Mas já tive problemas ao tentar usar:

s/<.*>//;

Para limpar tags html. O ".*" casa tudo, e coisas
como, por exemplo, "<strong>Texto</strong>"
simplesmente deixam de existir, ao invés de apagar
apenas as tags e preservando o texto. Eu tenho que
fazer:

s/<.*?>//

Para que o asterisco se comporte direito. Aí funciona.

Só não sei porque o asterisco não se comportou dessa
forma nesse meu caso específico. Afinal de contas:

s/<.*?>// n não é muito diferente de s/\[.*?\]//, é? 

Exceto pelos escapes e trocar "<" por "[" e ">" por
"]", o que muda?

Será que é por causa da versão paleozóica do Perl que
uso aqui (5.003_07)?

[]´s
ALceu

 --- "Flavio S. Glock" <fglock em pucrs.br> escreveu: >
Alceu R. de Freitas Jr. wrote:
> > 
> > Olá gente,
> > 
> > Estou batendo a cabeça com uma expressão regular
> aqui.
> > Eu fiz ela funcionar, só não entendi como. :-)
> > 
> > Imaginem que tenho isso:
> > 
> > [texto] [texto] [texto] [texto]
> > 
> > Eu quero apenas isso: [texto]
> > 
> > Eu não tenho como saber que texto virá entre
> chaves,
> > apenas quero o último conjunto à direita. A
> primeira
> > vista tentei isso:
> > 
> > s/\[.*?\]\s\[/\[/g;
> > 
> > No caso do exemplo, eu fiquei com [texto] [texto].
> > Usei a interrogação depois do asterisco para não
> sair
> > pegando tudo o que vier pela frente. Depois de
> algumas
> > tentivas frustadas como:
> > 
> > s/\([.*?\]\s\[)+/\[/;
> > s/\([.*?\]\s\[)+/\[/g;
> > 
> > Eu resolvi simplesmente tirar a interrogação:
> > 
> > s/\[.*\]\s\[/\[/g;
> > 
> > Não é que o desgraçado funcionou? O que aconteceu
> com
> > a  "gulodice" do ".*", que dessa vez não pegou
> tudo?
> 
> Esta ultima expressao deve estar pegando isso:
> 
>  [texto] [texto] [texto] [texto] - original
> 
>  [ .*                  ]\s[       - match
>                          [       - substitui
> 
>                          [texto] - resultado
 


_______________________________________________________________________
Yahoo! Mail
Mais espaço, mais segurança e gratuito: caixa postal de 6MB, antivírus, proteção contra spam.
http://br.mail.yahoo.com/



Mais detalhes sobre a lista de discussão Cascavel-pm