RegEx模式的价格

时间:2013-12-25 15:24:28

标签: python regex python-2.7

这可能是一个愚蠢的问题,但我是RegExes的新手。 在我的python程序中,我需要一个RegEx模式的价格。

示例案例:

8.00
25.14
271.61
2,367.82
52,124.09
9,37,159.82

任何帮助将不胜感激。在此先感谢。

2 个答案:

答案 0 :(得分:2)

这个匹配以上所有内容:

(\d{1,3},?)*\d{1,3}\.\d{2}

答案 1 :(得分:0)

您正在尝试匹配根据Indian numbering system规则格式化的数字。为了正确地做到这一点,你必须仔细定义你想要作为匹配的东西。例如,100,10,100.00之类的字符串会构成匹配吗?您可以在此示例中找到格式有效的数字,即10,100.00,但我认为出于您的目的,示例中的字符串不应匹配。我对测试进行了详细阐述,并提出了这个测试套件:

# match
8.00
25.14
271.61
2,367.82
52,124.09
9,37,159.82

# don't match
9,378,159.82
9,37,159.820
12,.80
12,12
12.,12
12,12.80
10,80
.80
80,

遵循正则表达式成功通过了这些测试。

(?<![\d,])((\d{1,2},)*\d{3}|(\d{1,3}))\.\d{2}(?!\d)