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 :

problème de regex


Sujet :

Langage Perl

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut problème de regex
    voila j'ai un fichier txt avec du texte et parfois des nom et E-mail:

    ex:
    (nom factices)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    blablablablablablablablablablablablablablablablablabla
     
    PIGNON Paul
    pignon@toto.fr                CONOR Sarah  
                                                                    conor@feee.fr
    blablablablablablablablablablablabla
    blablablablablablablablabla                  TO-TO Franck
    blablablabla                                   to@titi.fr

    (les noms sont séparer de plusieur espace mais le forum les prend pas en compte dsl)

    j'ai pour l'instant ceci:

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    open F, $txt;
    $txt =~ s/.txt/ Mail.txt/;
    $line = <F>;
    while ($line){
        if ($line =~ /CRÉATION-DÉVELOPPEMENT/){
          while ($line){
            if ($line =~ /[A-Z]+\s[A-Z][a-z]+/){
              foreach my $name (split ('  ',$line)){
                if($name =~ /[A-Z]+\s[A-Z][a-z]+/){
                  push (@name,$name);
                }
              }
            }
            if ($line =~ /@/){
              foreach my $data (split (' ',$line)){
                if($data =~ /@/){
                  push (@data,$data);
                }
              }
            }
          $line = <F>;
          }
        }
        else{
          $line = <F>;
        }
      }
    close F;
     
    open RES, ">>$txt";
    for (my $i=0; $i <= $#name; $i++) {
      print RES "$name[$i]\t";
      print RES "$data[$i]\n";
    }
    close RES;
    }
    Ca marche bien sauf que ca extrait pas "TO-TO Franck" et il y a d'autre petit problème dans certain bla bla qui correspondent mais ca je verais en temps voulu.

    Je demande votre aide merci

  2. #2
    Expert confirmé
    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
    Par défaut
    Citation Envoyé par lanfeust42
    Je demande votre aide merci
    Ok, et quelle est la question ?
    Ton format n'est pas bien défini (nous n'avons aucune idée de ce qui se trouve dans les blabla) et tu n'es pas très précis sur ce que tu veux extraire (juste l'email, ou le nom correspondant aussi ?).
    Sans précision il va être difficile de t'aider.

    --
    Jedaï

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    Oups désoler je me suis embrouiller dans mes explications, les bla bla sont des texte classique qui n'on aucun rapport avec le format des nom ou des mails, les données à extraire sont les nom et les E-mail.

    Merci de m'avoir repris

  4. #4
    Expert confirmé
    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
    Par défaut
    Ton format n'est toujours pas bien défini : où est le nom correspondant à un email donné (même colonne à la ligne du dessus ? Quel est le séparateur de colonne ?), ce n'est absolument pas clair dans ton exemple... Soit tu nous donnes un vrai exemple représentatif, soit tu explicites le format (les deux c'est mieux).

    --
    Jedaï

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    DUPONT Pierre
    FRANCOIS Jean Dupont.pierre@fro.fr
    Francois.j@fro.fr

    Dispositif de sécurité pour navires de pêche

    Le projet a pour origine le naufrage du Bugaled Breizh. ingénieur au Commissariat

    à l'Énergie Atomique a ainsi l'idée de créer un dispositif de sectionnement pyrotechnique des câbles de Système d'énergie renouvelable hybride thermosolaire biomasse

    l'outil de pêche, basé sur la technique de charge creuse. Les bateaux de 12 à 25 mètres représentent Le projet porte sur une filière innovatrice de production d'électricité et chaleur combinant les techno-

    notre premier marché cible. Le marché visé par le projet peut être défini comme celui des outils et logies thermiques à partir de biomasse et thermosolaire cylindro-parabolique (CSP). L'innovation,

    Voila je veux donc récupérer le nom et le mail correspondant bien sur or parfois les nom sont AB-DELKA Arnaud et ce sont ceux si qui me pose pb merci
    j'espère avoir été claire cette fois

  6. #6
    Expert confirmé
    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
    Par défaut
    Ton document a l'air d'être formatté absolument n'importe comment... S'il s'agit juste de trouver également les noms qui comprennent un '-', essaie de modifier ta regex : au lieu de
    mets :
    --
    Jedaï

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    oui on va dire que le formatage de mon fichier importe peu en faite tu a très bien compris la seul chose qui m'importe c'est bien d'extraire lesd nom avec des "-", ta solution ne marche pas

    J'ai essayer ca aussi a tout hasard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /[A-Z\-]+\s[A-Z][a-z]+/
    ca marche pas mieux hum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /[A-Z][A-Z-]+\s[A-Z][a-z]+/
    et ca non plus je sais plus qoa faire

  8. #8
    Expert confirmé
    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
    Par défaut
    Si si ma solution marche, tu es sûr que tu n'as pas oublié de modifier l'une des deux regexs ? (puisque tu as deux regexs identique à celle-ci)

    --
    Jedaï

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    ben ouai je pensais aussi mais sur cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Le projet concerne l'édition et la distribution d'une solution logicielle de gestion des droits d'accès aux       ABD-LIMANE Réda
     
    applications informatiques. Il s'agit de la première solution intégrant nativement les fonctionalités de          <a href="mailto:limane@foo.fr">limane@foo.fr</a>

    ca ne marche pas ( normalement ABD-LIMANE est plus loin mais les espaces sont pas pris en compte)
    l'éxécution ne passe pas la première regex

    (EDIT par Jedai : Pour garder la mise en forme sur le forum on utilise les balises code (bouton #))

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 50
    Par défaut
    On comprend pas trop, t'es pas très clair dans tes explications...

  11. #11
    Expert confirmé
    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
    Par défaut
    Tu auras sans doute remarqué qu'il y a un accent dans le prénom... Alors que ta regex ne les prends pas en compte !

    --
    Jedaï

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 88
    Par défaut
    oups quel boulet dsl...

    Merci beaucoup de ton aide

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

Discussions similaires

  1. problèmes avec Regex sous c#
    Par santana2006 dans le forum C#
    Réponses: 2
    Dernier message: 24/01/2007, 15h42
  2. [Java] Problème de Regex
    Par spk4ever dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 28/08/2006, 10h51
  3. Problème avec Regex
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/07/2006, 14h50
  4. Problème avec RegEx et une Query string
    Par Erakis dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2005, 15h48
  5. Problème de Regex ... avec un point
    Par bugalood dans le forum Langage
    Réponses: 2
    Dernier message: 29/05/2005, 10h26

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