我学习了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_'

或者告诉我,我怎样才能写得更好?
升级版
哦,对不起,我忘了:我是用Python2.7做的

最佳答案

别写了。

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

09-04 16:34