Ich möchte das erste Match einer Regex bekommen.
In diesem Fall habe ich eine Liste bekommen:
text = 'aa33bbb44'
re.findall('\d+',text)
['33', '44']
Ich könnte das erste Element der Liste extrahieren:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
'33'
Das funktioniert aber nur, wenn es mindestens eine Übereinstimmung gibt, sonst wird eine Fehlermeldung angezeigt:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: Listenindex außerhalb des Bereichs
In diesem Fall könnte ich eine Funktion definieren:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
Gibt es eine Möglichkeit, dieses Ergebnis zu erhalten, ohne eine neue Funktion zu definieren?
len(re.findAll)==0
stattdessen check verwenden.