a = “20010320.888888888”
r=re.sub(”(?<=[0-9])(?=([0-9]{3})+(?![0-9]))“, “,” ,a) #小数位数一多就不行了
20,010,320.888,888,888
注意:不要采用字符串format格式化,权当re思维练习;
一行实现对不带小数点的整数也适用
a = “20010320.888888888”
r=re.sub(”(?<=[0-9])(?=([0-9]{3})+(?![0-9]))“, “,” ,a) #小数位数一多就不行了
20,010,320.888,888,888
注意:不要采用字符串format格式化,权当re思维练习;
一行实现对不带小数点的整数也适用
修改如下,对于整数以及带有小数点的数测试正确,如有帮助,希望采纳一下
import re
a = "20010326807.25858"
r = re.sub("(?!^)(?=(\d{3})+(\.))", "," ,a) if '.' in a else re.sub("(?!^)(?=(\d{3})+($))", "," ,a)
print(r)
加个限制(\.)
表示符号是 . 则结束匹配,然后因为当没有小数点时,正则也会无法匹配,而如果要以$
取匹配整数,小数的情况又无法匹配。
所以,搞了很久,发现这个只能分情况区使用正则表达式
。要写成一行也可以。
如有帮助,希望采纳一下