Voglio ottenere la prima corrispondenza di una regex.
In questo caso, ho una lista:
text = 'aa33bbb44'
re.findall('\d+',text)
["33", "44"]
Potrei estrarre il primo elemento della lista:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
"33"
Ma funziona solo se c'è almeno una corrispondenza, altrimenti riceverò un errore:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: elenca l'indice fuori intervallo
In tal caso potrei definire una funzione:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
C'è un modo per ottenere quel risultato senza definire una nuova funzione?
len(re.findAll)==0invece il controllo.