Chuỗi đầu vào của tôi là một cái gì đó như He#108##108#o
và đầu ra phải là Hello
.Python regex thay thế bằng giá trị ASCII
Về cơ bản, tôi muốn thay thế mỗi #[0-9]+#
bằng các ký tự ASCII có liên quan của số bên trong ##
.
Chuỗi đầu vào của tôi là một cái gì đó như He#108##108#o
và đầu ra phải là Hello
.Python regex thay thế bằng giá trị ASCII
Về cơ bản, tôi muốn thay thế mỗi #[0-9]+#
bằng các ký tự ASCII có liên quan của số bên trong ##
.
Sử dụng chức năng thay thế trong regex của bạn, mà chiết xuất các chữ số, chuyển đổi chúng sang số nguyên, và sau đó đến nhân vật:
import re
s = "He#108##108#o"
print(re.sub("#(\d+)#", lambda x : chr(int(x.group(1))), s))
Kết quả:
Hello
Bạn có thể sử dụng 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)
Output:
Hello
Hầu hết thời gian, huy hiệu được trao cho các câu hỏi ngớ ngẩn, các câu hỏi khó được bỏ qua. Lấy cái này. –