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 dynamique - Comment récupérer les $x ?


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Points : 116
    Points
    116
    Par défaut Expression régulière dynamique - Comment récupérer les $x ?
    Bonjour,

    Ma question est sûrement bête mais j'ai beau chercher je trouve pas comment faire.

    Voici mon problème :
    J'utilise des expressions régulières dynamiques, en gros je ne sais pas ce qui la compose.
    Elle peut donc contenir plusieurs parenthèses, au final je peux avoir plusieurs résultats $x ($1, $2, $3 ...).
    J'aimerais les mettre dans une liste pour les traiter plus loin dans mon script.

    Comment récupérer tous ces résultats ?

    J'ai bien essayé ceci mais ça ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    if($myTxt =~ /$regex/) {
    my $x = 1;
    while (defined(${$x})) {
      print '$'.$x.' = '.${$x}.'\n';
      $x++;
    }
    }
    Je suis sur que la soluce est simple mais là je déclare forfait.

    Merci d'avance pour l'aide que vous pourrez m'apporter.
    Yannick

  2. #2
    Membre émérite
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 44
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Elle peut donc contenir plusieurs parenthèses, au final je peux avoir plusieurs résultats $x ($1, $2, $3 ...).
    J'aimerais les mettre dans une liste pour les traiter plus loin dans mon script.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if (my @values = ($text =~ m/$regexp/)){
        map {print "$_\n"} @values;
    }

    Quand tu fais
    cela te renvoie un array quelque soit le nombre de valeurs retournées. Il est donc très simple de récupérer le tout via @values comme je le fais.




    Pour ce qui est du fait de stocker une expreg dans une variable, tu peux lire le post http://www.developpez.net/forums/sho...d.php?t=592489 parlant de qr// permettant de stocker une regex précompilée dans une variable
    -- Jasmine --

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 161
    Points : 116
    Points
    116
    Par défaut
    Merci Jasmine80.
    J'ai été trop bête sur ce coup. C'était si simple, je me suis vraiment torturé l'esprit pour rien.

    Encore merci.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 21/05/2015, 14h37
  2. Réponses: 5
    Dernier message: 20/12/2013, 21h23
  3. Réponses: 6
    Dernier message: 24/01/2007, 10h29
  4. Réponses: 3
    Dernier message: 23/01/2004, 21h02
  5. Comment récupérer les adresses WWW dans Internet Explorer ?
    Par chaours dans le forum Web & réseau
    Réponses: 7
    Dernier message: 03/09/2003, 14h27

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