需要货币后处理器用于所有货币金额。后处理器的逻辑应该处理以下情况:
14.978.00 -> 14,978.00
14.97800 -> 14,978.00
14,97800 -> 14,978.00
逻辑如下:
如果数字格式正确(逗号位于正确的位置,最多只有一个小数点后面有2位数字) - 那么什么都不做。
否则,如果在逗号有意义的位置找到小数点,则将小数点更改为逗号 (如果小数点右边有3个或更多数字,则将十进制数改为逗号)
执行第2步后,任何以逗号结尾,后跟5位数(,nnnnn
)的数字都应转换为,nnn.nn
。
答案 0 :(得分:0)
s/\.(\d{3})/,$1/
匹配一个点后跟3个数字,用逗号替换,后跟相同的3个数字(已捕获)。
s/,(\d{3})(\d{2})$/,$1.$2/
匹配一个逗号,后跟5个数字(一组3和一组2)在字符串的末尾,用逗号替换它,前三个数字(已捕获),一个点和最后两个数字(被抓获)。