Perl expressions régulières

[Résolu/Fermé]
Signaler
-
 Nico -
Bonjour,

Mon pb est le suivant, j'ai une variable qui contient le date au format jj/mm/aaaa mais le pb est que si le chiffre du jour est compris entre 1 et 9 il m'affiche par exemple 5/3/2007 et je souhaiterai obtenir 05/03/2007. J'ai cherché sur le net et essayé mais je ne parviens pas à trouver la bonne syntaxe à faire...

Quelqu'un saurait-il comment faire? Merci pour toutes réponses !

8 réponses

Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
Salut,

affiche ton code pour voir
merci
alors mon code c'est en fait :

sub semaineParDefaut # cette fonction me retourne tout les jours de la semaine compris du lundi au vendredi
{
my $jour_dbt = -(localtime)[6] +1;
my $jour_fin= $jour_dbt+4 ;
my $DebutSemaine ;
my $FinSemaine;
my @semaine;

my @tm=localtime(time);
my @tm1=localtime(time);

$semaine[0] = Add_Delta_YMD($tm[5]+1900, $tm[4]+1, $tm[3], 0, 0, $jour_dbt);
$semaine[1] = Add_Delta_YMD($tm[5]+1900, $tm[4]+1, $tm[3], 0, 0, $jour_dbt+1);
$semaine[2] = Add_Delta_YMD($tm[5]+1900, $tm[4]+1, $tm[3], 0, 0, $jour_dbt+2);
$semaine[3] = Add_Delta_YMD($tm[5]+1900, $tm[4]+1, $tm[3], 0, 0, $jour_dbt+3);
$semaine[4] = Add_Delta_YMD($tm1[5]+1900, $tm1[4]+1, $tm1[3], 0, 0, $jour_fin);
my $monmois = (localtime)[4]+1;
$semaine[0] .= "/$monmois";
$semaine[1] .= "/$monmois";
$semaine[2] .= "/$monmois";
$semaine[3] .= "/$monmois";
$semaine[4] .= "/$monmois";
foreach $s (@semaine)
{
# c'est ici que j'aurais besoin de traiter ma variable $s pour transformer 7/8/2007 en 07/08/2007 par exemple...
}
return (@semaine);

}

Merci encore pour toutes réponses
en fait my @tm1 ne sert à rien je sais pas ce qu'il fout là je l'ai remplacé par @tm...
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
Salut,

essaie de mettre cette ligne après

my @tm=localtime(time);
my @tm1=localtime(time);
map { sprintf("%2d",$_) } @tm[3,4];
je n'ai pas testé, je suis au boulot et je n'ai pas accès à une console avec Perl :-(
Nan ça n'as pas l'air de faire grand chose ...
j'ai trouvé l'expression régulière qui me permet de faire ça :
c'est :
s/^(\d)$/0$1/;


Voilà, merci quand lami20j !!
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 545
j'ai pensé aux regex, mais come je ne peux pas tester ... :-)
c'est bien que tu as trouvé ;-)
Merci ;)
mais de toute façon je pense que je serais amené à te redemander quelques trucs par ci par la...

@+