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+
并尝试。
我使用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+
并尝试。