Bir normal ifadenin ilk eşleşmesini elde etmek istiyorum.
Bu durumda bir listem var:
text = 'aa33bbb44'
re.findall('\d+',text)
['33', '44']
Listenin ilk öğesini çıkarabilirim:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
'33'
Ancak bu yalnızca en az bir eşleşme olduğunda işe yarar, aksi takdirde bir hata alırım:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: liste dizini aralık dışı
Bu durumda bir fonksiyon tanımlayabilirim:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
Yeni bir fonksiyon tanımlamadan bu sonucu elde etmenin bir yolu var mı?
len(re.findAll)==0bunun yerine kontrol kullanmalıydım.