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

时间:2011-04-19 07:35:31

标签: python regex

我学习Python,并碰到了有趣的事情: 我尝试编写lambda函数,它将搜索字符串中的模式,如果找到匹配则返回结果,否则返回空字符串。我已经写过:

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

如果我的字符串只有一个匹配 - 这可以正常工作,但我不知道如果字符串在传递的字符串中包含多个匹配项,我怎么能用结果返回dict。 例如:

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

或者请告诉我,我怎样才能更好地写出这个lambda? UPD 哦,对不起,我忘了:我是用Python 2.7做的。

1 个答案:

答案 0 :(得分:9)

根本不要写。

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