正则表达式搜索返回结果或为空

3

我正在学习Python,遇到了一个有趣的事情: 我试图编写一个lambda函数,它将在字符串中搜索模式,并在找到匹配时返回结果,否则返回空字符串。我已经写出来的代码:

>>> b = lambda x: re.search("_\w+_", x).group(0) if re.search("_\w+_", x) is not None else ''

如果我的字符串只有一个匹配项 - 这个方法可以正常工作,但是如果字符串中包含多个匹配项,我不知道如何返回带有结果的字典。

示例:

>>> b('sdsd _sdsd_ sdsd sdsd _sssssssss_')
'_sdsd_'

请告诉我,如何更好地编写lambda函数呢?更新:哦,抱歉,我忘记说明了:我是在Python 2.7中进行操作。

1个回答

9

不写它。

>>> re.findall("_\\w+_", 'sdsd _sdsd_ sdsd sdsd _sssssssss_')
['_sdsd_', '_sssssssss_']
>>> re.findall("_\\w+_", '')
[]

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接