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 :

Expression régulière en perl


Sujet :

Langage Perl

  1. #1
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut Expression régulière en perl
    Bonjour à tous,

    J'ai un programme perl qui lit un fichier texte, je dois faire une recherche et ressortir toutes les lignes qui correspondent à ma demande :

    Ma chaîne doit contenir 3 textes séparé uniquement par 2 signes "-", chaque morceau de texte doit finir par la lettre X

    (Ex : LKX-JKJJXXX-XKJLX est valide, mais X-X-X ou XXX-XVX-XX aussi)

    Je n'arrive pas à obtenir mon résultat, j'ai essayer plusieurs expressions sans succès comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($chaine =~ /X-*X-*X$/) { 
    #code
    }
    Mais il ne me sort pas les bons résultats, il me sort également les lignes avec plus de 2 signes "-", j'ai vu que pour rechercher x élément on peut utiliser : -{2} mais je n'arrive pas a lier la recherche des X et du nombre de signes "-" présent dans la ligne à rechercher. En espérant avoir été clair.
    BakSh0, Modérateur .Net & Web

    Affichez la colorisation syntaxique dans votre code en ajoutant dans votre balise : [CODE=xxx] en remplaçant xxx par le nom du langage.


    N'oubliez pas de consulter les FAQs : .Net / Web et les cours et tutoriels .Net / Web

  2. #2
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    Citation Envoyé par BakSh0 Voir le message
    Ma chaîne doit contenir 3 textes séparé uniquement par 2 signes "-", chaque morceau de texte doit finir par la lettre X
    (Ex : LKX-JKJJXXX-XKJLX est valide, mais X-X-X ou XXX-XVX-XX aussi)
    les exemples que tu donnes peuvent ne pas être suffisants, est-ce que 123X-456X-789X ou _______________X-aBcDX-e*$ùX sont valides par exemple ?

    si on considère que les "3 textes séparés" doivent comporter exactement 5 lettres majuscules (incluant le 'X') ça pourrait donner ça par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine =~ /[A-Z]{4}X-[A-Z]{4}X-[A-Z]{4}X/

  3. #3
    Modérateur
    Avatar de BakSh0
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2014
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2014
    Messages : 276
    Points : 1 271
    Points
    1 271
    Par défaut
    Merci de l'information, je vais être encore plus précis :

    Je n'ai en fait que deux caractères possible : disons X et D, j'ai donc besoin que ces informations soient valides :

    DXXDX-X-XXXDX ou X-X-X ou => sont tous OK

    Mais XXXXD-XXX-X ne doit pas être valide (premier mot termine par D) et XXXDX-XX-XDDX-XDX n'est pas valide (contient 4 mots)

    Précision : la longueur des mots sont variable ils peut y avoir 1 lettre (le seul X) comme n lettres.
    Merci

    Edit : Résolu avec ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if ($phoStrSyl =~ /^[DX]{0,}?X\-[DX]{0,}?X\-[DX]{0,}?X$/) {
    #code
    }
    BakSh0, Modérateur .Net & Web

    Affichez la colorisation syntaxique dans votre code en ajoutant dans votre balise : [CODE=xxx] en remplaçant xxx par le nom du langage.


    N'oubliez pas de consulter les FAQs : .Net / Web et les cours et tutoriels .Net / Web

  4. #4
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    ok, plus simple alors avec $chaine =~ /^[DX]*X-[DX]*X-[DX]*X$/

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine =~ m{[dx]*x-[dx]*x-[dx]*x}i

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/07/2014, 03h45
  2. expression régulière en perl
    Par amibar dans le forum Langage
    Réponses: 3
    Dernier message: 14/07/2012, 12h14
  3. expression régulière en perl
    Par samordi dans le forum Langage
    Réponses: 6
    Dernier message: 17/10/2011, 20h45
  4. Expressions régulières en perl
    Par flo_k dans le forum Langage
    Réponses: 2
    Dernier message: 06/11/2007, 19h54

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