Повторное выражение Python заменяет значение ASCII
Моя строка ввода - это что-то вроде He#108##108#o
, а выход должен быть Hello
.
В основном я хочу заменить каждый #[0-9]+#
на соответствующие символы ASCII номера внутри ##
.
Ответы
Ответ 1
Используйте функцию замены в вашем регулярном выражении, которая извлекает цифры, преобразует их в целое число, а затем в символ:
import re
s = "He#108##108#o"
print(re.sub("#(\d+)#", lambda x : chr(int(x.group(1))), s))
Результат:
Hello
Ответ 2
Вы можете использовать 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