[SP-pm] Duvida sobre regex

Wendel Scardua wendelscardua em gmail.com
Quinta Junho 1 10:42:53 PDT 2006


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 :-) )

On 5/31/06, Luis Motta Campos <monsieur_champs em yahoo.com.br> wrote:
> Gabriel Vieira wrote:
> > $string =~ /a+\n*b+/; sera? :)
>
>    Esta é boa, Gabriel.
>    Mas acho que pode ficar ainda melhor assim:
>
>    m{a+  # pega "aaa", mas pode pegar "a" ou "aaaaaaaa".
>      \s+ # pega espaços, marcadores de fim de linha, e outras merdas
>      b+  # pega "bbb", mas pode pegar "b" ou "bbbbbbbb".
>    }x    # vamos ver: "x" é a opção para me permitir comentar a regexp
>
>    Espero que isso te ajude, Henry.
>    Se você precisar de mais explicações, basta perguntar.
>    Boa sorte!
> --
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>   Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
>   Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
>   Perl Mongers and Perl Fanatic Evangelist
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>


-- 
[]s
Wendel

"Não ajustar o auto-ajuste" - http://wendel.scardua.net/


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