Perl expressions régulières

Résolu/Fermé
Nico - 3 déc. 2007 à 11:11
 Nico - 3 déc. 2007 à 16:28
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 !
A voir également:

8 réponses

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 567
3 déc. 2007 à 11:27
Salut,

affiche ton code pour voir
merci
0
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
0
en fait my @tm1 ne sert à rien je sais pas ce qu'il fout là je l'ai remplacé par @tm...
0
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 567
3 déc. 2007 à 11:42
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 :-(
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nan ça n'as pas l'air de faire grand chose ...
0
j'ai trouvé l'expression régulière qui me permet de faire ça :
c'est :
s/^(\d)$/0$1/;


Voilà, merci quand lami20j !!
0
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 567
3 déc. 2007 à 14:05
j'ai pensé aux regex, mais come je ne peux pas tester ... :-)
c'est bien que tu as trouvé ;-)
0
Merci ;)
mais de toute façon je pense que je serais amené à te redemander quelques trucs par ci par la...

@+
0