我有一个数字串,可能有不完整的十进制转述
例如
a = '1. 1,00,000.00 1 .99 1,000,000.999'
期望输出
['1','1,00,000.00','1','.99','1,000,000.999']
到目前为止,我已经尝试了以下两个
re.findall(r'[-+]?(\d+(?:[.,]\d+)*)',a)
这给了
['1', '1,00,000.00', '1', '99', '1,000,000.999']
这使得0.99到99这是不需要的
而
re.findall(r'[-+]?(\d*(?:[.,]\d+)*)',a)
给予
['1', '', '', '1,00,000.00', '', '', '1', '', '.99', '', '1,000,000.999', '']
这也会产生不需要的空字符串结果
这用于在字符串中查找货币值,以便逗号分隔符没有设置的模式或根本不存在
我的建议是使用下面的正则表达式:
我已经用python实现了一个代码片段。你知道吗
输出:
['1','1,00000.00','1','0.99','1000000.999']
此正则表达式将为您提供所需的输出:
你可以在这里测试:https://regex101.com/r/VfQIJC/6
您可以使用
re.split
:输出:
相关问题 更多 >
编程相关推荐