Regex提取多个带小数的数字



我有以下一组数字

SalesCost% Margin
2,836,433.182,201,355.6422.39

预期结果

我想将其分离并提取数字,以便得到如下所示的结果:

2,836,433.18
2,201,355.64
22.39

尝试

我尝试了(d+)(?:.(d{1,2}))?正则表达式,但它只提取数字,直到第一个小数,即我只得到2,836,433.18

问题

有没有一种方法可以使用Regex(或者通过Python(提取数字来获得上面显示的结果?

您可以使用

re.findall(r'd{1,3}(?:,d{3})*(?:.d{1,2})?', text)
re.findall(r'(?:d{1,3}(?:,d{3})*|d+)(?:.d{1,2})?', text)

请参阅regex演示#1和regex演示#2。

详细信息

  • d{1,3}-一位、两位或三位
  • (?:,d{3})*-逗号和三位数字出现零次或多次
  • (?:.d{1,2})?.和一个或两个数字的可选序列

(?:d{1,3}(?:,d{3})*|d+)(?:.d{1,2})?变体支持类似123456.12的数字,即不包含整数部分的数字分组符号。

相关内容

  • 没有找到相关文章

最新更新