【问题标题】:Python regex replace with ASCII valuePython 正则表达式替换为 ASCII 值
【发布时间】:2018-01-19 02:23:51
【问题描述】:

我的输入字符串类似于He#108##108#o,输出应该是Hello

基本上我想用##内的数字的相关ASCII字符替换每个#[0-9]+#

【问题讨论】:

    标签: python regex replace


    【解决方案1】:

    你可以使用re.split():

    import re
    
    s = "He#108##108#o"
    
    new_s = re.split("#+", s)
    
    final_s = ''.join(chr(int(i)) if i.isdigit() else i for i in new_s)
    

    输出:

    Hello
    

    【讨论】:

      【解决方案2】:

      在你的正则表达式中使用替换函数,它会提取数字,将它们转换为整数,然后再转换为字符:

      import re
      
      s = "He#108##108#o"
      
      print(re.sub("#(\d+)#", lambda x : chr(int(x.group(1))), s))
      

      结果:

      Hello
      

      【讨论】:

        猜你喜欢
        • 2012-06-17
        • 1970-01-01
        • 1970-01-01
        • 2021-10-11
        • 1970-01-01
        • 2011-04-29
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        相关资源
        最近更新 更多