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 :

table, liste, hash et tout et tout.. pour débutant


Sujet :

Langage Perl

  1. #21
    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
    comment récupérer c.toto@toto.com dans les lignes
    f=<c.toto@toto.com>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($mail =~ /f=<([a-z]\.[a-z]+@[a-z]+\.[a-z]+)/i ){

    mon fichier résultat est vide ?
    C'est normal :p je n'ai récupéré que c.toto@toto.com et non le chiffre associé

    Et bien, au lieu d'essayer de me faire deviner l'expression régulière, lis la théorie et comprends leur fonctionnement tu gagneras non seulement du temps, mais tu apprendras quelque chose de très utile. De plus, tu devrais également concentrer tes efforts sur le module Regexp::Common dont Jedai à parlé.

  2. #22
    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
    mais j'ai pas mon compteur

    ça ça ne marche pas
    Code :


    if ($ligne =~ /(\<(.*)\>)\s+(\d+)/) {


    mon fichier est vide
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    my $mail = 'f=<c.toto@toto.com> 6';
    if($mail =~ /(\<(.*)\>)\s+(\d+)/ ){
        print "$1 => $2\n";
        # priorité des parenthèses par la gauche
        # $1 => tout ce qui est avant l'espace
        # $2 => tout ce qui est compris entre < et >
        # $3 => la valeur numérique
    }
    Tu récupère une valeur de trop. Tu as trois couples de parenthèses donc $1, $2, $3. Ne récupérant pas $3, il est donc tout à fait normal que tu ne récupères plus ton compteur.

    utilise plutôt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($ligne =~ /<([@.a-z]+)>\s+(\d+)/i)
    les backslah sont inutiles devant les signes plus petit et plus grand que.


    Commences-tu à comprendre les expressions régulières?

  3. #23
    Membre à l'essai
    Inscrit en
    Juin 2008
    Messages
    39
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 39
    Points : 12
    Points
    12
    Par défaut fin
    bonjour,
    avant tout merci pour ton aide, je devais terminer pour aujourd'hui.
    j'ai testé ta solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($ligne =~ /<([@.a-z]+)>\s+(\d+)/i)
    mais là ça se passe pas bien
    Scalar found where operator expected at D:\test_perl\testtop50.pl line 50, near "$h_count"
    (Missing operator before $h_count?)
    syntax error at D:\test_perl\testtop50.pl line 50, near "$h_count"
    syntax error at D:\test_perl\testtop50.pl line 50, near "+="
    syntax error at D:\test_perl\testtop50.pl line 59, near "}"
    Execution of D:\test_perl\testtop50.pl aborted due to compilation errors.

    j'ai donc testé la solution suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($ligne =~ /<(.*)>\s+(\d+)/) {
    et ça marche , c'est exactement ce que je voulais.
    j'ai progressé un peu mais le chemin est encore long !
    merci beaucoup pour ton aide.

Discussions similaires

  1. [MySQL] mettre un code sur toutes les pages pour dire de s'inscrire
    Par will_smith dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 02/07/2008, 12h15
  2. Réponses: 16
    Dernier message: 05/08/2006, 11h07
  3. une toute petits aide pour finaliser tout sa
    Par yoan_111 dans le forum ASP
    Réponses: 6
    Dernier message: 16/12/2005, 16h04
  4. Requete SELECT : prendre toutes les valeurs pour 1 champ
    Par fab22montpellier dans le forum Requêtes
    Réponses: 1
    Dernier message: 02/09/2005, 09h12

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