J'ai une liste contenant plusieurs valeurs telles que:suivi sans plus python chiffres d'expression régulière
l = [
'210-4521268-18',
'210.0622277.13',
'rachid 312-0653348-08',
'3000401732 00000 064 77063',
....,
'312-0653348-08 rachid'
]
Je veux chercher uniquement les éléments avec le format « 210.0622277.13 » correspondant à l'expression régulière suivante:
r'\d{3}\D?\d{7}\D?\d{2}'
jusqu'à présent j'ai écrit l'expression régulière suivante pour aller chercher des valeurs de thèses:
regex = re.compile(r'((\d{3}\D?\d{7}\D?\d{2}$)|(^\d{3}\D?\d{7}\D?\d{2}))')
# loop through the list to fetch desired part of value
for line in l:
match = regex.search(line)
if match:
print('line : {} found a match {}'.format(line, line[match.start():match.end()]))
else:
print('line : {} found no match'.format(line)
le problème est que la valeur « 3000401732 00000 064 77063 » se correspond
comment puis-je affiner cette expression régulière pour ne pas accepter plus de chiffres après le motif désiré dans le cas où il n'y a plus de chiffres après le modèle de la valeur sera mis au rebut .
les matches que je dois attraper sont:
l = [
'210-4521268-18',
'210.0622277.13',
'312-0653348-08',
'312-0653348-08'
]
de sorte que la sortie sera quelque chose comme:
line : 210-4521268-18 found a match 210-4521268-18
line : 210.0622277.13 found a match 210.0622277
line : rachid 312-0653348-08 found a match 312-0653348-08
line : 3000401732 00000 064 77063 found no match
line : 312-0653348-08 rachid found a match 312-0653348-08
Si vous souhaitez ancrer le modèle au début de la ligne, vous pouvez le préfixe avec '^', et si vous voulez l'ancrer à la fin de la ligne, vous pouvez le suffixe avec '$' . Donc, pour correspondre à une ligne entière, vous pouvez placer le motif dans '^' et '$'. Est-ce ce que vous cherchez? –