【发布时间】:2018-01-19 02:23:51
【问题描述】:
我的输入字符串类似于He#108##108#o,输出应该是Hello。
基本上我想用##内的数字的相关ASCII字符替换每个#[0-9]+#。
【问题讨论】:
我的输入字符串类似于He#108##108#o,输出应该是Hello。
基本上我想用##内的数字的相关ASCII字符替换每个#[0-9]+#。
【问题讨论】:
你可以使用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
【讨论】:
在你的正则表达式中使用替换函数,它会提取数字,将它们转换为整数,然后再转换为字符:
import re
s = "He#108##108#o"
print(re.sub("#(\d+)#", lambda x : chr(int(x.group(1))), s))
结果:
Hello
【讨论】: