[Cascavel-pm] Substituir letra

Luis Motta Campos monsieur_champs em yahoo.com.br
Quinta Maio 11 13:15:15 PDT 2006


Patty Silva wrote:
> Pessoal.. consegui resolver meu problema..
> minha variavel sempre vem com um B na frente + 4 numeros, quero 
> substituir o B por 2
> fiz assim:
> $id=~ /\w(\d\d\d\d)/;
> $id="2"."$1";
> 
> Teria como fazer de outra forma??

   $id =~ s{^B}{2}; # sim, simples assim.

> E outra coisa.. tenho a variavel $data que vem nesse formato (yyyymmdd_hhmm)
> preciso passar para o formato do MYSQL pois vou inserir no banco..
> yyyy-mm-dd hh:mm
> Por expressa regular ficaria assim:
> $data=~ /(\d\d\d\d)(\d\d)(\d\d)_(\d\d)(\d\d/);
> $data="$1"."-"."$2"."-"."$3".""."$4".":"."$5";
> 
> Teria como fazer de outra forma??

   DISCLAIMER: vou usar uma expressão regular por que eu estou com 
PREGUIÇA de consultar o CPAN. Mas a Patty deveria usar um módulo de 
data/hora capaz de fazer parse do que ela tem e validar as datas antes 
de tentar inserir no MySQL.

   $data =~ s{(20\d{2})              # ano VALIDO em $1
              (0?[1-9]|1[012])       # mes VALIDO em $2
              (0?[1-9]|[12]\d|3[01]) # dia (quase*) VALIDO em $3
              _                      # underscore, conforme especificado
              ([01]\d|2[0-3])        # horas VALIDAS em $4
              ([0-5]\d)              # minutos VALIDOS em $5
              }{$1-$2-$3 $4:$5}x;    # Finalmente, a string mágica...

   ### Quase*: não levei em consideração mêses que podem ter
   ### trinta e trinta e um dias, nem calculei anos bissextos.
   ### Estas coisas podem ser ou não importantes, dependendo
   ### de como estão seus dados no banco. Leia novamente o
   ### DISCLAIMER acima.

-- 
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
  Luis Motta Campos is Software Engineer, Oracle OCP/DBA, Un*x
  Sysadmin, Member of {Lisbon,São Paulo,Cascavel,Brasil,London}
  Perl Mongers and Perl Fanatic Evangelist
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

		
_______________________________________________________ 
Abra sua conta no Yahoo! Mail: 1GB de espaço, alertas de e-mail no celular e anti-spam realmente eficaz. 
http://br.info.mail.yahoo.com/


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