Python正则表达式替换为ASCII值

12 python regex replace

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

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

Jea*_*bre 17

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

import re

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

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

结果:

Hello
Run Code Online (Sandbox Code Playgroud)

  • 大多数时候,徽章被认为是愚蠢的问题,难以忽略的问题.拿这一个. (2认同)

Aja*_*234 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)
Run Code Online (Sandbox Code Playgroud)

输出:

Hello
Run Code Online (Sandbox Code Playgroud)