我需要用两个字母等价物(Ae,ä,,厄厄厄厄姆>,厄厄厄厄姆>,厄姆,ü,ß)的两个字母等价物(Ae,Ae,Oe,Oe,Oe,Oe,Ue,Ue,Ue,ss,, 目前,我有这个函数,但是字符串的长度改变了: 但是,我要求字符串的总长度不能改变。例如,Mär应该变成Mae。在 在获得适当的解决方案(regex)方面有什么帮助吗非常感谢:)def _translate_umlauts(s):
"""Translate a string into ASCII.
This Umlaut translation comes from http://stackoverflow.com/a/2400577/152439
"""
trans = {"\xe4" : "ae"} # and more ...
patt = re.compile("|".join(trans.keys()))
return patt.sub(lambda x: trans[x.group()], s)
只需截短为原始字符串长度:
好吧,这是个奇怪的要求,但是
注意,如果元音变音是字符串中的最后一个字符,则不会替换它。显然,这会改变字符串的长度。在
相关问题 更多 >
编程相关推荐