[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