Perl expressions régulières

Résolu
Nico -  
 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

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    affiche ton code pour voir
    merci
    0
  2. Nico
     
    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
  3. Nico
     
    en fait my @tm1 ne sert à rien je sais pas ce qu'il fout là je l'ai remplacé par @tm...
    0
  4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Nico
     
    Nan ça n'as pas l'air de faire grand chose ...
    0
  7. Nico
     
    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
  8. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    j'ai pensé aux regex, mais come je ne peux pas tester ... :-)
    c'est bien que tu as trouvé ;-)
    0
  9. Nico
     
    Merci ;)
    mais de toute façon je pense que je serais amené à te redemander quelques trucs par ci par la...

    @+
    0