[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