红颜莎娜
这是Regex Buddy制造商的一些东西。这些来自图书馆,所以我相信它们已经过全面测试。数字:货币金额(必须为美分),可选的千位分隔符;强制性两位数Match; JGsoft:^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*\.[0-9]{2}$数字:货币金额(可选的美分)可选的千位分隔符;可选的两位数小数Match; JGsoft:^[+-]?[0-9]{1,3}(?:,?[0-9]{3})*(?:\.[0-9]{2})?$数字:货币金额US和EU(可选的美分)可以使用美式123,456.78表示法和欧式123.456,78表示法。可选的千位分隔符;可选的两位数小数Match; JGsoft:^[+-]?[0-9]{1,3}(?:[0-9]*(?:[.,][0-9]{2})?|(?:,[0-9]{3})*(?:\.[0-9]{2})?|(?:\.[0-9]{3})*(?:,[0-9]{2})?)$
智慧大石
根本没有经过完全测试(我只是写了它!),但是表现正常:^-?(?:0|[1-9]\d{0,2}(?:,?\d{3})*)(?:\.\d+)?$测试集:01335554,656465699,785125,9447,994,16979941690.001.033.78795555.124,656.48999,785.01125,944.100-7,994,169-7994169.23 // Borderline...Wrong:000013,35.555,,65699,78,51,25,944--7,994,1690.0,0.1033.787,954.656.48999.785,011-125,944.1-7,994E169注意:您的System.Decimal依赖于语言环境,很难在正则表达式中创建,除非在构建时。我假设即使在某些文化(区域设置)中有不同的规则,数字也要按三组进行分组。在其周围添加空格很简单。