[Cascavel-pm] Separando campos

Gabriel Vieira gabriel.vieira em gmail.com
Segunda Março 19 08:01:48 PDT 2007


---------------------------------->8----------------------------------
$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:
----------------------------------8<----------------------------------

Funcionou blz aqui :)

On 3/19/07, Veronica Soraia <veronica.soara em gmail.com> wrote:
>
> olá tenho um problema , não estou conseguindo resolver (sou iniciante
> rsrsr), é o seguinte, tenho um arquivo q vem com o endereço junto com
> essas duas opções : AV 29 JUNHO 00602, e , R MARGARIDAS 13 QD8 C 13.
> Tenho que separar esses  registros em campos como Endereço,numero,
> complemento com o algoritmo q fiz no segundo registro ele pega normal:
> Endereço : R MARGARIDAS , numero:13, complemento: C 13 . Mas no
> primeiro registro ele pega o "29" tratando como numero e o "JUNHO
> 00602" tratando como complemento , ou seja ele só pega o AV como
> endereço,o correto seria Endereço:AV 29 junho e numero :00602.Para
> todos os casos com numero após um logradouro ele não filtra certo.
>
> Alguem pode me ajudar ! :-) o algoritmo q fiz é esse :
>
> {
>         @locendtemp     =       split(/\s/,$_);
>
>         $n      =       0;
>
>         foreach $campo(@locendtemp)
>         {
>                 $campo  =       strtrim($campo);
>
>                 if($n == 0)
>                 {
>                         $locend =       $campo."  ";        #pega endereço
>                 }
>                 elsif (($campo !~ /\d/) and (not $locnum))
>                 {
>                         $locend .=      $campo." ";         #endereço
>                 }
>                 elsif (($campo =~ /\d/) and (not $locnum))
>                 {
>                         $locnum =       $campo;     #numero
>                 }
>                 elsif (($campo !~ /\d/) and ($locnum))
>                 {
>                         $loccpo .=      $campo."  ";       #complemento
>                 }
>                 elsif (($campo =~ /\d/) and ($locnum))
>                 {
>                         $loccpo .=      $campo."  ";       #complemento
>                 }
>
>                 ++$n;
>         }
>
>         return ($locend,$locnum,$loccpo);
> }
> _______________________________________________
> 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/c64a9488/attachment-0001.html 


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