Chcę uzyskać pierwsze dopasowanie wyrażenia regularnego.
W tym przypadku mam listę:
text = 'aa33bbb44'
re.findall('\d+',text)
[„33”, „44”]
Mógłbym wyodrębnić pierwszy element listy:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
„33”
Ale to działa tylko wtedy, gdy jest co najmniej jedno dopasowanie, w przeciwnym razie otrzymam błąd:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: indeks listy poza zakresem
W takim przypadku mógłbym zdefiniować funkcję:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
Czy istnieje sposób uzyskania tego wyniku bez definiowania nowej funkcji?
len(re.findAll)==0
zamiast tego użyć sprawdzenia.