[SP-pm] ER para separar o primeiro e o último campo de um registro.

Gabriel Vieira gabriel.vieira at gmail.com
Mon Dec 22 08:54:19 PST 2008


$_ = "1         ABC X Y CDA 40";
$_ =~ /^(\d+)\D*(\d+)$/;
print "$1 - $2";

2008/12/22 Wagner Arbex <arbex em arbex.pro.br>:
> Eu mesmo respondo :D acabei de fazer com
>
> $ultimo =~ s/.*\s(.*$)/$1/;
>
> Se alguém tiver uma sugestão melhor... eu agradeço.
>
> []s e obrigado.
>
>
> On 12/22/2008 02:37 PM, Wagner Arbex wrote:
>> Prezados Monges... estou com um pequeno prob com ERs e tenho certeza de
>> que é trivial, mas agarrei.
>>
>> Vou dar um exemplo simplificado. Tenho um arquivo com vários registro
>> que pode ser, por ex:
>>
>> 1         ABC X Y CDA 40
>> 5         XYZ - U BBB  0
>> 8         --- T C CTT 80
>>
>> E gostaria de gravar um arquivo com:
>>
>> 1,40
>> 5,0
>> 8,80
>>
>> O que eu preciso é ler esse arquivo e separar o primeiro e o último
>> campo para gravá-los em outro arquivo, seria +-
>>
>> while ( <ARQ1> ) {
>>    chomp;
>>
>>    my $primeiro = $_;
>>    $primeiro =~ s/\s.*//;  # OK... esse funciona.
>>
>>    my $ultimo = $_;
>>    $ultimo =~ s/.*\s.+$//; # Bom, aqui eu não sei qual a ER a ser usada.
>>
>>    print ARQ2 "$primeiro,$ultimo\n";
>> }
>>
>> Além de me ajudarem com a ER, todas as sugestões para eu melhorar o
>> código, conhecer novas estruturas, formas de fazer etc são muito bem vindas.
>>
>> []s e, desde já, obrigado.
>
>
> --
>   Wagner Arbex
>   Doutorando em Engenharia de Sistemas e Computacao - COPPE/UFRJ
>
>   Vendo notebook - http://www.arbex.pro.br/
>
> _______________________________________________
> SaoPaulo-pm mailing list
> SaoPaulo-pm em pm.org
> http://mail.pm.org/mailman/listinfo/saopaulo-pm
>



-- 
Gabriel Vieira


More information about the SaoPaulo-pm mailing list