Quero obter a primeira correspondência de uma regex.
Neste caso, obtive uma lista:
text = 'aa33bbb44'
re.findall('\d+',text)
['33', '44']
Eu poderia extrair o primeiro elemento da lista:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
'33'
Mas isso só funciona se houver pelo menos uma correspondência, caso contrário, receberei um erro:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: índice da lista fora do intervalo
Nesse caso, eu poderia definir uma função:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
Existe uma maneira de obter esse resultado sem definir uma nova função?
len(re.findAll)==0check em seu lugar.