pythong的正则表达式函数re.findAll如何避免出现空串?

How to avoid empty strings in pythong's regular expression function 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+ 并尝试。