import re
text = r"{\' A}vila, Y{\`e}che, {'hallo}"
encodings = {
"\\'": u'\u0300',
"\\`": u'\u0302',
}
def repl(m):
encoding = m.group(1)
string_content = m.group(2)
if encoding in encodings:
return string_content + encodings[encoding]
return string_content
changed_text = re.sub(r'\{([^\w\s]+|_)\s*(\w)}', repl, text)
print(changed_text)
aW1wb3J0IHJlCnRleHQgPSByIntcJyBBfXZpbGEsICBZe1xgZX1jaGUsIHsnaGFsbG99IgoKZW5jb2RpbmdzID0gewogICAgIlxcJyI6IHUnXHUwMzAwJywKICAgICJcXGAiOiB1J1x1MDMwMicsCn0KCmRlZiByZXBsKG0pOgogICAgZW5jb2RpbmcgPSBtLmdyb3VwKDEpCiAgICBzdHJpbmdfY29udGVudCA9IG0uZ3JvdXAoMikKICAgIGlmIGVuY29kaW5nIGluIGVuY29kaW5nczoKICAgIAlyZXR1cm4gc3RyaW5nX2NvbnRlbnQgKyBlbmNvZGluZ3NbZW5jb2RpbmddCiAgICByZXR1cm4gc3RyaW5nX2NvbnRlbnQKCmNoYW5nZWRfdGV4dCA9IHJlLnN1YihyJ1x7KFteXHdcc10rfF8pXHMqKFx3KX0nLCByZXBsLCB0ZXh0KQpwcmludChjaGFuZ2VkX3RleHQp