gpt4 book ai didi

python - 返回正则表达式第一个匹配的字符串,处理不匹配的情况

转载 作者:IT老高 更新时间:2023-10-28 20:22:58 28 4
gpt4 key购买 nike

我想获得正则表达式的第一个匹配项。

在这种情况下,我有一个列表:

text = 'aa33bbb44'
re.findall('\d+',text)

['33', '44']

我可以提取列表的第一个元素:

text = 'aa33bbb44'
re.findall('\d+',text)[0]

'33'

但这只有在至少有一个匹配时才有效,否则我会得到一个错误:

text = 'aazzzbbb'
re.findall('\d+',text)[0]

IndexError: list index out of range

在这种情况下我可以定义一个函数:

def return_first_match(text):
try:
result = re.findall('\d+',text)[0]
except Exception, IndexError:
result = ''
return result

有没有一种方法可以在不定义新函数的情况下获得该结果?

最佳答案

您可以通过添加 |$'' 默认值嵌入到您的正则表达式中:

>>> re.findall('\d+|$', 'aa33bbb44')[0]
'33'
>>> re.findall('\d+|$', 'aazzzbbb')[0]
''
>>> re.findall('\d+|$', '')[0]
''

也适用于其他人指出的re.search:

>>> re.search('\d+|$', 'aa33bbb44').group()
'33'
>>> re.search('\d+|$', 'aazzzbbb').group()
''
>>> re.search('\d+|$', '').group()
''

关于python - 返回正则表达式第一个匹配的字符串,处理不匹配的情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38579725/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com