zoukankan      html  css  js  c++  java
  • python2 中文小写数字转换成阿拉伯数字

     def dig2chars(s):
            """
            五百一十二 -->512
            一三二 --> 132
            """
            # 使用unicode编码
            fl = unicode(str(s).decode('gbk').encode('utf-8'), 'utf-8')
            # 先把数字提取
            part = re.compile(r'[〇一二三四五六七八九十百]'.decode('utf-8'))
            fl = part.findall(fl)
            fl = ''.join(fl)
            # 没有百十千是另一种方法处理
            part2 = re.compile(r'[〇一二三四五六七八九]'.decode('utf-8'))
            res2 = part2.findall(fl)
    
            result = 0
            res_str = ''
            r = 1
            fl_l = list(unicode(str(fl), 'utf-8'))
            
            china_dig = {u'〇': 0, u'一': 1, u'二': 2, u'三': 3, u'四': 4, u'五': 5,
                         u'六': 6, u'七': 7, u'八': 8, u'九': 9, u'十': 10, u'百': 100}
            # 反向遍历
            if u'十' in fl_l or u'百' in fl_l:
                for i in range(len(fl_l) - 1, -1, -1):
                    val = china_dig.get(fl_l[i])
                    if val:
                        # 处理十三 十四
                        if val >= 10 and i == 0:
                            if val > r:
                                r = val
                                result = result + val
                            else:
                                r = r * val
                        elif val >= 10:
                            if val > r:
                                r = val
                            else:
                                r = r * val
                        else:
                            result = result + r * val
            elif res2:
                for i in range(len(fl_l)):
                    val = china_dig.get(fl_l[i])
                    if val:
                        res_str += str(val)
                        result = res_str
                    else:
                        result = s
            else:
                result = s
            return result
    

      

  • 相关阅读:
    6.Ray-消息订阅器编写
    附录:2-Event Sourcing pattern (事件溯源设计模式)
    附录:1-Grain生命周期-译注
    4.Ray-Handler之CoreHandler编写
    Q&A-20180128
    TODO
    3.Ray-Event编写
    缓存技术内部交流_01_Ehcache3简介
    Spring AMQP 源码分析 04
    Spring AMQP 源码分析 03
  • 原文地址:https://www.cnblogs.com/zzay/p/15030300.html
Copyright © 2011-2022 走看看