还是回到我的方法,用倒序字符串加汉字分隔符,最后再正回来,我觉得这个应该是最简单版本了
def cn_digit(s):
if isinstance(s, (int, float)):
s = str(s)
elif not isinstance(s, str):
return s
s = s.replace(',', '')
m = re.match(r'(-?)(\d+)((?:\.\d+)?)', s, re.A)
if not m:
return s
dem = "万亿兆京垓秭穰沟涧正载极"
cn_dig = [v + dem[i//4-1] if i > 1 and i % 4 == 0 and i // 4 <= len(dem) else v for i,v in enumerate(m.group(2)[::-1])]
return m.group(1) + ''.join(reversed(cn_dig)) + m.group(3)
【 在 moudy 的大作中提到: 】
: 嗯,应该把整数部分再劈成两半。
: [code=python]
: def cn_digit(s):
: ...................
--
修改:poocp FROM 171.221.29.*
FROM 171.221.29.*