[SP-pm] Duvida sobre regex
henrique
juhenrimas em yahoo.com.br
Quinta Junho 1 11:12:35 PDT 2006
humm, realmente, o perl -pe não funcionou mesmo... vou tentar fazer essa idéia
de tratar a mensagem inteira como uma grande e "enolme" linha...
é que estou estou firmemente (decidido|querendo|tentando|precisando) fazer um
wrapper para limpar mensagens de email que chegam via pop e contenham links
para arquivos não muito honestos. A maioria dos links sao bloqueados no
proxy, mas mesmo assim, queria incrementar o índice de acertos.
até instalei o p3scan aqui, e integrei-o com um antivírus, se alguém manda um
arquivo infectado, ele educada e transparentemente intercepta e nega o
recebimento da mensagem.
Ele (o p3scan) tem uma opção que integra o p3mail, que era um wrapper de html,
que retira(va) todo o html da página, mas por corromper alguns arquivos
legitímos e não tão somente html, foi descontinuado e retirado do ar.
As minhas pretensões são mais humildes, eu só pretendo retirar links que
contenham algumas extensões não-tão-úteis. Já obtive algum sucesso limpando
urls que estejam na mesma linha, mas não funciona a contento quando a url
sofre uma quebra de linha.
por exemplo, um trecho de uma das mensagens em que eu estou "treinando" :
============inicio==============
> Mas o meu já está assim hoje. Funcionar funciona, o problema é que
> não bloqueia o link que eu passei. Teste o link abaixo para você
> ver:
>
> http://www.mikes.educv.ro/albums/cartao.scr?4d325356ae47122a6e7b8f1f07cae26d
>
> []´s
>
> Fulanoxxx
>
-----BEGIN PGP SIGNED MESSAGE----- <br>
Hash: SHA1 <br>
<br>
Realmente, este link ele não bloqueou...<br>
Se eu tiro o que vem depois do "?" ele funciona...<br>
<br>
gostaria então também de saber uma solução<br>
<br>
<br>
Atenciosamente,<br>
<br>
<br>
<br>
Fulano xxx escreveu:<br>
<span style=3D"white-space: pre;">> Mas o meu já está assi=
m hoje.
Funcionar funciona, o problema é que<br>
> não bloqueia o link que eu passei. Teste o link abaixo para voc=
ê<br>
> ver:<br>
> <br>
>
<a class=3D"moz-txt-link-freetext" href=3D"http://www.mikes.educv.ro/albums=
/cartao.scr?4d325356ae47122a6e7b8f1f07cae26d">http://www.mikes.educv.ro/alb=
ums/cartao.scr?4d325356ae47122a6e7b8f1f07cae26d</a><br>
> <br>
> <br>
acho que é isso..rs.. de volta a prancheta
( tô me sentindo o próprio coiote usando aquelas engenhocas da ACME pra pegar
o papaleguas..rs)
[ ]s, Henry
Em Qui 01 Jun 2006 14:42, Wendel Scardua escreveu:
> Gente, acho que não é \n entre os a's e os b's ... mas parece ter
> sempre um "=" fazendo papel de hífen. Ele quer casar:
> aaabbb
> ou
> aaab=
> bb
> # notem que a linha de cima tem um "b" !
>
> Agora, perl -pe não vai dar conta do recado [ao menos não do jeito que
> o autor da pergunta espera]: a expressão é executada para cada linha,
> e quando estiver na linha "aaab=" não dá pra ver a linha seguinte.
>
> O jeito mais simples é fazer um script completo:
> undef $/;
> ler o arquivo inteiro pra uma stringona só ;
> se esse "=" for um "hífen" mesmo (não foi deixado claro), s/=\n//g;
>
> Dai sim, faça sua regex s/aaabbb/foobar/g;
> (ou não apaga os \n mas faz todas as posibilidades:
> s/a(=\n)?a(=\n)?a(=\n)?b(=\n)?b(=\n)?b/foobar/;
> ou mais eficiente:
> s/a(?:=\n)?a(?:=\n)?a(?:=\n)?b(?:=\n)?b(?:=\n)?b/foobar/;
> )
>
> E pronto :-)
> Com a string contendo todo o arquivo, até isso bate:
> aa=
> a=
> b=
> bb
>
> (exercício para o leitor compilar de pt_BR pra perl :-) )
Mais detalhes sobre a lista de discussão SaoPaulo-pm