[Cascavel-pm] Separando campos

Gabriel Vieira gabriel.vieira em gmail.com
Segunda Março 19 17:34:02 PDT 2007


Foi solução rápida durante um intervalo de atividades :).

O Adriano conseguiu fazer uma ótima didática com a solução.

Abraços ;)

On 3/19/07, Luis Motta Campos <luismottacampos em yahoo.co.uk> wrote:
>
> On Mar 19, 2007, at 4:03 PM, Gabriel Vieira wrote:
> > Correção: no 2o o nome da rua aparece apenas "29 Junho".
> > On 3/19/07, Gabriel Vieira <gabriel.vieira em gmail.com> wrote:
> > $endereco = "R MARGARIDAS 13 QD8 C 13";
> > $endereco = "AV 29 JUNHO 00602";
> > print "Tipo: $1\nRua: $2\nNúmero: $4\nComplemento: $6" if $endereco
> > =~ /^(\w+)\s+((\s|\w)+?)\s+(\d+)(\s+((\s|\w)+))?$/;
> >
> > # Tipo: R
> > # Rua: MARGARIDAS
> > # Número: 13
> > # Complemento: QD8 C 13
> >
> > # e
> >
> > # Tipo: AV
> > # Rua: AV 29 JUNHO
> > # Número: 00602
> > # Complemento:
>
>    Minhanossasenhoraaparecida!
>    Assim, a gente perpetua ainda mais a fama ruim da linguagem...
>    Espera. Faz assim:
>
>    #!/usr/bin/perl
>    use strict;
>    use warnings;
>    my $expressao_regular =
>    qr{^          # um início de linha
>       (\w+)      # seguido de uma palavra: o TIPO DE LOGRADOURO
>       \s+        # seguido de um ou mais espaços
>       (
>         (\s|\w)+ # seguido de uma ou mais palavras ou espaços: o NOME
> DO LOGRADOURO
>       ?)         # mas não seja guloso: consuma o mínimo que conseguir.
>       \s+        # seguido de um ou mais espaços
>       (\d+)      # seguido de um ou mais dígitos: o NÚMERO
>       (
>         \s+      # seguido de um ou mais espaços
>         (
>           (\s|\w)+ # seguido de palavras ou espaços: o COMPLEMENTO
>         )
>       )?        # opcionalmente.
>       $
>      }x;
>
>    # Agora, continuamos com a nossa "programação normal":
>    print "Tipo: $1\nRua: $2\nNúmero: $4\nComplemento: $6"
>      if $expressao_regular =~ $endereco;
>
>    __END__
>
>    Agora, sim, isso parece racionalmente possível de ler e manter!
>    Muito cuidado, galera!
>    Os iniciantes não sabem fazer isso, é melhor prevenir que remediar.
>
>    Verônica, se você tiver problemas, pergunta, que a gente sempre
> responde. Sempre. ;-)
>    Putamplexos!
> --
> Luis Motta Campos (a.k.a. Monsieur Champs) is a software engineer,
> Perl fanatic evangelist, and amateur {cook, photographer}
>
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em pm.org
> http://mail.pm.org/mailman/listinfo/cascavel-pm
>



-- 
Gabriel Vieira
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://mail.pm.org/pipermail/cascavel-pm/attachments/20070319/30f34be9/attachment.html 


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