Je veux obtenir le premier match d'une regex.
Dans ce cas, j'ai une liste:
text = 'aa33bbb44'
re.findall('\d+',text)
[«33», «44»]
Je pourrais extraire le premier élément de la liste:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
«33»
Mais cela ne fonctionne que s'il y a au moins une correspondance, sinon j'obtiendrai une erreur:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: index de liste hors de portée
Dans ce cas, je pourrais définir une fonction:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
Existe-t-il un moyen d'obtenir ce résultat sans définir une nouvelle fonction?
len(re.findAll)==0
check à la place.