我想得到第一个匹配的正则表达式。
在这种情况下,我有一个列表:
text = 'aa33bbb44'
re.findall('\d+',text)
[’33’,’44’]
我可以提取列表的第一个元素:
text = 'aa33bbb44'
re.findall('\d+',text)[0]
33年
但是,只有在至少有一个匹配的情况下,这种方法才有效,否则我将得到一个错误:
text = 'aazzzbbb'
re.findall('\d+',text)[0]
IndexError: 列表索引超出范围
在这种情况下,我可以定义一个函数:
def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result
有没有一种不用定义新函数就能得到结果的方法?