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

Python Discussion :

Problème Expression régulères


Sujet :

Python

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut Problème Expression régulères
    Bonjour à tous,

    Je sollicite votre aide pour le traitement d'un fichier de données par l'utilisation d'expression régulières.

    Mes données sont le forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    43-43-14P52N1-17-08P22W;07/02/11-10:30:03;XXX;0;560
    la partie XXX pouvant prendre les valeurs : P, HPE, HPH, HCE, HCH

    J'ai écris l'expression régulière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    pat1 = re.compile('''\d\d-\d\d-\d\dP\d\d[A-Z]\d-\d\d-\d\dP\d\d[A-Z];
                    \d\d/\d\d/\d\d-\d\d:\d\d:\d\d;
                    (P|HPE|HPH|HCE|HCH);
                    [0-9]+;
                    [0-9]{1,9}''',re.VERBOSE)
    qui fonctionne bien mais qui MATCH avec les données suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    43-44-33P64N1-18-17P79W;19/03/11-04:30:05;HCH;0;206KH
    43-44-33P64N1-18-17P79W;19/03/11-12:00:07;HPH;0;194E7O8Z
    43-44-33P64N1-18-17P79W;20/03/11-07:30:03;HCH;0;214JWH _5OX<ZE(_S 0CVAPH
    je ne comprends pas pourquoi ?

    Voici le code :
    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
    pat1 = re.compile('''\d\d-\d\d-\d\dP\d\d[A-Z]\d-\d\d-\d\dP\d\d[A-Z];
                    \d\d/\d\d/\d\d-\d\d:\d\d:\d\d;
                    (P|HPE|HPH|HCE|HCH);
                    [0-9]+;
                    [0-9]{1,9}''',re.VERBOSE)
     
    #
    with open(repOri+'tic.csv') as fichier :
        listTicOk = []
        listTicNok = []
        for line in fichier :
            if re.match(pat1, line):
                listTicOk.append(line)
            else:
                listTicNok.append(line)
    Merci de votre aide

  2. #2
    Membre éprouvé

    Homme Profil pro
    Diverses et multiples
    Inscrit en
    Mai 2008
    Messages
    662
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Diverses et multiples

    Informations forums :
    Inscription : Mai 2008
    Messages : 662
    Points : 1 273
    Points
    1 273
    Par défaut
    Je pense que c’est parce que match débute toujours au début de la ligne ou de la string, mais n’implique pas d’aller jusqu’à sa fin –*il faut le préciser explicitement avec un “$”*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    pat1 = re.compile('''\d\d-\d\d-\d\dP\d\d[A-Z]\d-\d\d-\d\dP\d\d[A-Z];
                         \d\d/\d\d/\d\d-\d\d:\d\d:\d\d;
                         (P|HPE|HPH|HCE|HCH);
                         [0-9]+;
                         [0-9]{1,9}$''', re.VERBOSE)

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Novembre 2007
    Messages
    237
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 237
    Points : 99
    Points
    99
    Par défaut
    C'est exactement ce que je souhaitais.

    Merci

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

Discussions similaires

  1. Problème Expression conditionnelle
    Par nicolasferraris dans le forum ASP
    Réponses: 6
    Dernier message: 15/03/2007, 09h52
  2. [RegEx] Comment extraire avec une expression régulère
    Par teen6517 dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2007, 16h35
  3. [RegEx] problème expression régulière
    Par H-bil dans le forum Langage
    Réponses: 4
    Dernier message: 13/02/2007, 15h38
  4. Problème expressions régulières
    Par sozie9372 dans le forum Langage
    Réponses: 3
    Dernier message: 07/06/2006, 15h13
  5. Problème expression regulière ??
    Par panaone dans le forum Langage
    Réponses: 5
    Dernier message: 18/08/2005, 13h41

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