Python中使用正则表达式完成将汉字大写金额转为数字

工作中需要将汉字大写的金额转为数字,写了个方法,现在分享出来

# 繁体金额转数字
import re
def trad_to_int(money):
    # 转换字典
    trad_dict = {
        '零':0,
        '壹':1,
        '贰':2,
        '叁':3,
        '肆':4,
        '伍':5,
        '陆':6,
        '柒':7,
        '捌':8,
        '玖':9,
        '拾':10,
        '佰':100,
        '仟':1000,
        '万':10000,
        '亿':100000000,
        '角':0.1,
        '分':0.01
    }

    trad = re.search(r"[零壹贰叁肆伍陆柒捌玖拾佰仟亿角分]+", money)
    if trad is not None:
        num = 0
        add = 0
        sum = 0
        for i in money:
            if i in ['零','壹','贰','叁','肆','伍','陆','柒','捌','玖']:
                add = trad_dict[i]
                sum = sum + add
            elif i in ['拾','佰','仟','亿','角','分']:
                num = add * trad_dict[i]
                sum = sum - add
                sum = sum + num
                add = num
            elif i == '万' or i == '亿':
                sum = sum * trad_dict[i]
        sum = str(sum) + '元'
        return sum
    else:
        return money