以下角色,我需要更換德語變音(Ä,ä,Ö,ö,Ü,ü,SS )與他們的兩個字母的當量(閡,AE,奧斯特,OE,Ue的,ue,ss)。如何更換一個元音,並與其他兩個字符
目前,我有這個功能,但是字符串的長度變化:
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)
不過,我有一個字符串的總長度不應該改變的要求。例如,Mär應該變爲Mae。
在得出相應的解決方案(正則表達式?)任何幫助是極大的讚賞:)
那麼,你可以正則表達式匹配'Ä.'與'Ae'取代它......但這不會,如果最後一個字符工作是'Ä',不分青紅皁白地吃下面的字符是一件很奇怪的事情,不是嗎? – Sneftel
字符串長度不應該改變?這是多麼愚蠢的要求? –
這很奇怪。在做完替換之後,你如何看待「löten」和「lösen」之間的區別,這兩者會導致「loeen」? – Ber