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 :

nombre of 'match' regex


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2009
    Messages : 7
    Points : 9
    Points
    9
    Par défaut nombre of 'match' regex
    salut,
    comment savoir le nombre de 'match' retournés pas un expression
    ex: si j'ai $_ = "fooFOObarBAR";$_ =~ /[a-z]/

    => 6

    merci

    cvv3@yahoo.com

  2. #2
    Invité
    Invité(e)
    Par défaut
    Utilise le modifier g

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $x = "fooFOObarBAR";
    $i = 0;
     
    while($x =~ /[a-z]/g) {
        $i++;
     
    }
     
    print $i;

  3. #3
    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
    Tout à fait, utilise /g, mais tu n'as pas besoin de faire une boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    my $x = "fooFOObarBAR";
    my $i = () = ($x =~ m/[a-z]/g);
    --
    Jedaï

  4. #4
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    Ou alors en forçant le contexte de liste, puis scalaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print scalar (my @nb = $x =~ /[a-z]/g);

  5. #5
    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
    Code Jedai : Sélectionner tout - Visualiser dans une fenêtre à part
    my $i = () = ($x =~ m/[a-z]/g);

    C'est vraiment étrange cette écriture avec des parenthèses vides. Je comprends que cela force la réponse à être numérique mais comment cela fonctionne-t'il?


    Merci,
    -- Jasmine --

  6. #6
    Membre confirmé Avatar de iblis
    Inscrit en
    Janvier 2007
    Messages
    510
    Détails du profil
    Informations personnelles :
    Âge : 57

    Informations forums :
    Inscription : Janvier 2007
    Messages : 510
    Points : 570
    Points
    570
    Par défaut
    Comme d'hab' la solution de Jedai (avec une liste anonyme) est plus élégante (l'avais pas vu passer).

  7. #7
    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
    Citation Envoyé par Jasmine
    C'est vraiment étrange cette écriture avec des parenthèses vides. Je comprends que cela force la réponse à être numérique mais comment cela fonctionne-t'il?
    J'ai compris grâce à l'intervention d'Iblis. Cela crée une liste anonyme forçant le contexte de liste.
    -- Jasmine --

Discussions similaires

  1. Nombre de match - regex
    Par bowow dans le forum Langage
    Réponses: 12
    Dernier message: 21/02/2014, 15h56
  2. [RegEx] match regex nombre
    Par jypees dans le forum Langage
    Réponses: 1
    Dernier message: 31/03/2009, 14h31
  3. [E-07] graphique s'adaptant au nombre de lignes, regex
    Par Library dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/11/2008, 15h26
  4. [REGEX] expression régulière qui match tout les nombres sauf un
    Par neuromencien dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 28/05/2008, 08h21
  5. [Regex] Matching...
    Par billynirvana dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 18/07/2005, 17h16

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