[Cascavel-pm] Expressão Regular Perl

jimmy jimmy.tty em gmail.com
Quarta Fevereiro 3 12:06:48 PST 2010


On Wed, Feb 03, 2010 at 03:21:15PM -0300, Roan Brasil Monteiro wrote:
>    Man como em Perl eu faço uma expressão regular para substituir por
>    exemplo:
>    string: xxx0006xxx0006xxxalgumacoisaxxx0006xxx0006xxx...xxx0006
>    quero pegar o 0006 segundo e o quarto elemento e substituir. Tem alguma
>    ideia?
> 
>    --
>    Atenciosamente,
> 
>    Roan Brasil Monteiro
>    http://roanbrasil.wordpress.com/
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm

saudações roan,

usando a ferramenta gnu sed eu faria algo parecido com:

  $ sed 's/0006/<MATCH>/2; s/0006/<MATCH>/4 ' <<< 'string: xxx0006xxx0006xxxalgumacoisaxxx0006xxx0006xxx...xxx0006'

mas no operador de substituição do perl não tem (ou não li a
documentação corretamente) um quantificador com o do sed, 
gostaria de saber qual a forma recomendada para fazer essa substituição
em perl porque a forma mais simples que consigo pensar é:

  $ perl -pe's/(.*?0006.*?)0006(.*?0006.*?)0006(.*?0006)/$1<MATCH>$2<MATCH>$3/' 

deve existir solução melhor.

-- 
"Não manejo bem as palavras
Mas manipulo bem as strings."
------------------------------


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