[FUGSPBR] [OT] Regex

Leonardo B. Cuquejo leo em magicwebdesign.com.br
Qui Abr 10 10:55:02 BRT 2003


Valeu GAMK.

Um dia eu aprendo regex direito aehuaeh

----- Original Message -----
From: "Diego Linke - GAMK" <linke em calnet.com.br>
To: "Grupo Brasileiro de Usuarios FreeBSD" <fugspbr em fugspbr.org>
Sent: Thursday, April 10, 2003 10:50 AM
Subject: Re: [FUGSPBR] [OT] Regex


Ola

seguinte vamos as dicas:

Um no loop como e por linha.... vc faz um $linha, $linha_ant (de linha
anterior).

dai vc junta os dois algo como:

$linha_ant =~ s/\r|\n//g;
$linha_dupla = $linha_ant . $linha;

OBS: tem aquela regex antes para tirar o \n e \r da linha_ant ... :D

Dia no caso vc compara a linha_dupla :D e manda printar sempre de duas
em duas linhas (trata apenas numeros pares ou impar (depende se o seu
contador comecar de 0 ou 1) para printar usando MOD).

Um detalhe vc esta fazendo a regex:

s/<\/BODY>//g;

Use:
s/<\/BODY>//ig;

Ou melhor:
s/<\/BODY>//i;

Sem o "g" porque nao e global... vc so tem um BODY e com o "i" para ser
ignore case.

Bom acho q vc entedeu a logica mais ou menos ne ? agora e so praticar :D

abracos

--
Diego Linke
Diretor de Tecnologia
diego em web4ever.com.br
....................................................
Web4ever Solutions - (41) 568-1791
http://www.web4ever.com.br
Curitiba - Paraná - Brasil

On Thu, 10 Apr 2003 09:40:42 -0300
"Leonardo B. Cuquejo" <leo em magicwebdesign.com.br> wrote:

> Pessoal, tenho um problema..
>
> Tenho um sisteminha que manda e-mails (html) via perl e ele adiciona
um
> rodape sempre no fim da mensagem, como eu tinha feito isso:
>
> $linha =~ s/<\/BODY>/$mrodape/g;
>
> Dai ele trocava a palavra </BODY> do e-mail html por por ex.:
>
> <TABLE><TR><TD> Ola este eh o rodape </TD></TR></TABLE></BODY>
>
> Assim tudo funcionava perfeitamente...
>
> Problema:
> as vezes o outlook quando faz mensagem em HTML ele deixa o BODY assim:
> </=^M
> BODY>
>
> Dai essa minha syntax nao funciona. Pergunta como fazer isso? Segundo
> problema esse perl le o EML linha por linha.
> entao tentei tratar assim:
> $linha =~ s/<\/=\nBODY>/$mrodape/g;
>
> ou
> $linha =~ s/<\/=\r\nBODY>/$mrodape/g;
>
> ou ainda
> $linha =~ s/<\/=\n\rBODY>/$mrodape/g;
>
> mas nao funciona ja que ele pega linha por linha!
>
> Desculpem pelo off, mas ja tentei de tudo que eh jeito.
>
> GAMK, sei que vc eh bom nisso, da uma forcinha :D
>
> Estava pensando quem sabe um if...
> Tipo se a linha anterior acabou com <\= e a nova comecar com BODY>...
>
> Vou tentar enquanto aguardo resposta
>
> Grato,
> Leonardo B. Cuquejo
>
> _______________________________________________________________
> Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
> Historico: http://www4.fugspbr.org/lista/html/FUG-BR/
>
_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/

_______________________________________________________________
Sair da Lista: http://www2.fugspbr.org/mailman/listinfo/fugspbr
Historico: http://www4.fugspbr.org/lista/html/FUG-BR/



Mais detalhes sobre a lista de discussão freebsd