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:
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:
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:
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:
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