IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

aide sur les expressions régulieres


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 10
    Points
    10
    Par défaut aide sur les expressions régulieres
    Bonsoir,

    je bloque sur un programme, je dois vérifier qu'une variable scalaire ($nombre) dont je ne connais pas le nombre de caractére comprend uniquement des chiffres.

    J'aimerai savoir si il existe une solution avec les expressions régulieres.

    voici ce que j'ai deja pu faire :

    if ($nombre=~/[0-9]/ )
    le probleme est que ca test uniquement le premier caractere de $nombre...
    alors que j'aimerai tester toute la chaine de caractere.

    j'aurai donc besoin de vos lumieres

    Merci

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    S'il s'agit vraiment d'uniquement des chiffres de 0 à 9, alors cette expression régulière conviendra :
    --
    Jedaï

  3. #3
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    peux tu m'expliquer la signification en gras de ce qui est en gras:
    Merci Jedai

  4. #4
    Mr6
    Mr6 est déconnecté
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Septembre 2004
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2004
    Messages : 607
    Points : 794
    Points
    794
    Par défaut
    recherche de chiffres, quelque que soit le nombre, sans se préoccuper des caractères de fin de ligne (\A \Z), et autorisant les espaces et les commentaires (/x à la fin). Voilou !

  5. #5
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par STEPH69000
    peux tu m'expliquer la signification en gras de ce qui est en gras:
    Merci Jedai
    \A matche au début de la chaine de caractère (pas au début de n'importe quelle ligne), \z matche exactement à la fin de la chaîne de caractère (\Z matche \n? \z), et le modificateur /x autorise à mettre des espaces et des commentaires dans ta regex comme l'a dit Mr6, ce qui permet de l'aérer (d'un autre côté, il faut explicitement préciser où tu veux vraiment matcher des espaces, mais comme la plupart du temps il est de toute façon plus sûr d'utiliser "\s+"...). Illustration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    m/ \A        # début de la chaîne de caractère
       [0-9]*    # n'importe quelle quantité de chiffres (y compris 0 chiffres)
       \z        # fin de la chaîne
    /x;
    --
    Jedaï

  6. #6
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 25
    Points : 10
    Points
    10
    Par défaut
    merci pour ces explications

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2005
    Messages : 111
    Points : 142
    Points
    142
    Par défaut
    J'utiliserais:
    tout simplement: début de chaine, un ou des chiffres, fin de chaine

  8. #8
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par mhooreman
    J'utiliserais:
    tout simplement: début de chaine, un ou des chiffres, fin de chaine
    Tu reconnais aussi une éventuelle fin de ligne. La regexp que j'ai proposé n'est pas la plus rapide ni la plus compacte, mais elle est très lisible et assez robuste.

    --
    Jedaï

Discussions similaires

  1. [RegEx] Question sur les expressions régulieres
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 25/01/2010, 00h41
  2. Besoin d'aide pour les expressions régulieres
    Par brahim94 dans le forum Langage
    Réponses: 3
    Dernier message: 24/08/2009, 09h31
  3. Aide sur les expression
    Par boby15000 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 14/02/2009, 02h18
  4. Aide sur les Expression dans DataColunm
    Par boby15000 dans le forum VB.NET
    Réponses: 0
    Dernier message: 11/02/2009, 16h04
  5. besoin d'aide sur les expressions regulieres
    Par gecko753 dans le forum C++Builder
    Réponses: 4
    Dernier message: 22/05/2007, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo