[PERL] Pb de débutant

Ju -  
 Ju -
Bonjour

Savez-vous comment dire que SI $i est compris entre 5 et 76 alors on fait un traitement, j'ai fais le code suivant mais ça ne marche pas...

FOR ($i=0;$i<500;$i++){
  if($i =~ /[5-76]/){
         .
         .
         .
  }
}



Merci par avance

3 réponses

  1. Reivax962 Messages postés 3742 Statut Membre 1 011
     
    Bonjour,

    Je ne connais pas la syntaxe de perl, mais ce que tu utilises, là, c'est une expression rationnelle : cela agit sur des chaines de caractères, pas sur des nombres !

    if($i =~ /[5-76]/) signifie : "si $i est 5, 6 ou 7" (un chiffre de l'intervalle [5;7] ou le chiffre 6)

    Ce que tu cherches, c'est plutôt quelque chose dans le genre de
    if ($i>=5 && $i<=76)
    Xavier
    0
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

      cela agit sur des chaines de caractères, pas sur des nombres !

      Oui, aussi sur les nombres.
      On peut travailler dans un intervalle en utilisant des regex
      On peut resoudre d'équations en utilisant des regex
      On peut tester les nombres en utilisant les regex

      (par exemple une regex pour vérifier si un numéro est en virgule flottante)
      /^([+-]?)(?=\d|\.\d)\d*(\.\d*)?([Ee]([+-]?\d+))?$/
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    il y a plusieurs façon de le faire, voilà 2 façons de le faire
    for($i=0;$i<500;$i++){
      if( grep { $i } 5..76 ){
             .
             .
             .
      }
    }
    ou
    for($i=0;$i<500;$i++){
      if( $i =~ /[5-9]|[1-6][0-9]|7[0-6]/){
             .
             .
             .
      }
    }
    0