Python正则表达式替换为ASCII值

时间:2017-08-10 17:51:31

标签: python regex replace

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

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

2 个答案:

答案 0 :(得分:17)

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

import re

s = "He#108##108#o"

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

结果:

Hello

答案 1 :(得分:6)

您可以使用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