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 :

[langage] Prob expression régulière


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Points : 53
    Points
    53
    Par défaut [langage] Prob expression régulière
    Hello,

    Est-ce que quelqu'un peut me donner un petit coups de main sur une expression régulière, ce serait fortement aimable :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    # $AllText : Le texte lu depuis le fichier
    # $context : Le context danslquel doit se trouver l'utilisateur
    # $num_boite : Le numéro de la boîte
     
    # Recherche de l'adresse email du propriétaire de la boîte vocale
    if ($AllText =~ /\[$context\].*$num_boite\s=>\s(.*?),(.*?),(.*?)\n/is){
       print "Adresse email : $3\n";
    }
    Voici le fichier texte dans lequel j'effectue la recherche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    [sip]
    371 => 371,test1,test1@gmail.com
    372 => 372,test2,test2@gmail.com
    373 => 373,test3,test3@gmail.com
     
    [other]
    371 => 371,test1,test1@gmail.com
    1234 => 5678,Company2 User,root@localhost
    L'expression permet de trouver l'email, mais rien ne l'empèche de trouver un boîte vocale dans un autre context ([other] par exemple), de plus il me semble qu'il doit être possible de faire plus simple.

    Un immense

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if ($AllText =~ /.+,([a-z0-9A-Z]+@.+\..+)/) {
       print "Adresse email : $1\n";
    }
    A voir ?

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Points : 53
    Points
    53
    Par défaut Hello
    Salut,

    Merci pour ta réponse, mais il me semble que ton expression test plutôt si l'adresse email est valide, ce qui ne m'aide pas, je désir savoir si elle se trouve dans un context [context] et qu'elle est attribuée à un certain numéro.

    Car voici dans quel situation on peut se trouver, on effectue une recherche du numéro 371 dans le context SIP :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    [sip]
    372 => 372,test2,test2@gmail.com
    373 => 373,test3,test3@gmail.com
     
    [other]
    371 => 371,test1,test1@gmail.com
    1234 => 5678,Company2 User,root@localhost
    L'expression trouve l'adresse test1@gmail.com alors qu'elle ne se trouve pas dans le context SIP mais OTHER.

    As-tu encore une idée ?

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Points : 53
    Points
    53
    Par défaut
    Personne n'a d'idée ?
    Cela me dépannerait bien ;-)

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 572
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 572
    Points : 2 014
    Points
    2 014
    Par défaut
    En partant du principe que tu as un fichier "liste.txt" contenant les infos présentées telles que ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [sip]
    372 => 372,test2,test2@gmail.com
    373 => 373,test3,test3@gmail.com
     
    [other]
    371 => 371,test1,test1@gmail.com
    1234 => 5678,Company2 User,root@localhost
    Voici un bout de code permettant de récupérer l'adresse mail d'une ligne et de savoir à quel contexte elle se rattache :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    use strict;
     
    my $dernier_contexte = "";
     
    open(LISTE, "liste.txt") or die("lecture fic impossible : $!\n");
    while(<LISTE>)
    {
        chomp();
        if (/^\[(.+)\]$/)
        {
            $dernier_contexte = $1;
        }
        else
        {
            if (/.+,([a-z0-9A-Z]+@.*\.?.+)/) {
               print "Contexte = $dernier_contexte, adresse email : $1\n";
           }
        }
    }
    Par rapport à ton fichier d'entrée, voici ce que donne mon code en résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Contexte = sip, adresse email : test2@gmail.com
    Contexte = sip, adresse email : test3@gmail.com
    Contexte = other, adresse email : test1@gmail.com
    Contexte = other, adresse email : root@localhost
    A toi d'adapter maintenant

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Points : 53
    Points
    53
    Par défaut
    Ok, c'est bon now, merci bien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/02/2005, 10h42
  2. [langage] erreur expressions régulières
    Par perlaud dans le forum Langage
    Réponses: 4
    Dernier message: 08/06/2004, 14h25
  3. [langage] problème expression régulière
    Par chtiboss dans le forum Langage
    Réponses: 6
    Dernier message: 05/01/2004, 16h08
  4. [langage] prob lecture fichier .txt
    Par martijan dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2003, 11h08
  5. [langage] [debutant] expression reguliere
    Par toto_titi dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2003, 09h45

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