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