如何避免 pythong 的正则表达式函数 re.findAll 中的空字符串?



我使用python的re模块来识别句子中的整数。它也会产生空字符串。你知道如何移除这些空字符串吗?

In [15]: myre="[0-9]*"
In [16]: re.findall(myre,"23")
Out[16]: ['23', '']
In [17]: re.findall(myre,"23 is a good number.")
Out[17]:
['23',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'',
'']

您应该使用[0-9]+而不是[0-9]*;后者匹配0或更多(这意味着数字是可选的);然而,+只匹配一个或多个。

原因是您的正则表达式匹配0个或多个数字。将其更改为[0-9]+d+并尝试。

相关内容

最新更新