ein Multi-char zu einzelnen char string Übersetzungstabelle Gegeben:Substitution Substrings von einem Schlüsselwert-Tabelle
>>> telex_mappings
{'eer': 'ể', 'awj': 'ặ', 'Dd': 'Đ', 'Ooj': 'Ộ', 'oox': 'ỗ', 'Aas': 'Ấ', 'Eej': 'Ệ', 'awx': 'ẵ', 'eef': 'ề', 'oo': 'ô', 'aas': 'ấ', 'Aax': 'Ẫ', 'owr': 'ở', 'Uws': 'Ớ', 'Awj': 'Ặ', 'Oor': 'Ổ', 'Awf': 'Ằ', 'ows': 'ớ', 'aaj': 'ậ', 'Owj': 'Ợ', 'aa': 'â', 'eex': 'ễ', 'Oox': 'Ỗ', 'Owr': 'Ở', 'awf': 'ằ', 'Aa': 'Â', 'aw': 'ă', 'awr': 'ẳ', 'uwj': 'ợ', 'uwx': 'ỡ', 'owj': 'ợ', 'Awx': 'Ẵ', 'Uwr': 'Ở', 'Aaj': 'Ậ', 'Eex': 'Ễ', 'Awr': 'Ẳ', 'Uw': 'Ư', 'Eef': 'Ề', 'aaf': 'ầ', 'Aws': 'Ắ', 'ees': 'ế', 'Ee': 'Ê', 'Ow': 'Ơ', 'Ees': 'Ế', 'Owx': 'Ỡ', 'Eer': 'Ể', 'Aar': 'Ẩ', 'Oo': 'Ô', 'uwf': 'ờ', 'uw': 'ư', 'uws': 'ớ', 'owx': 'ỡ', 'ow': 'ơ', 'aar': 'ẩ', 'eej': 'ệ', 'oof': 'ờ', 'ee': 'ê', 'uwr': 'ở', 'Aw': 'Ă', 'ooj': 'ộ', 'Aaf': 'Ầ', 'aax': 'ẫ', 'Oof': 'Ờ', 'oor': 'ổ', 'aws': 'ắ', 'Oos': 'Ớ', 'Uwf': 'Ờ', 'Uwx': 'Ỡ', 'dd': 'đ', 'oos': 'ố', 'Uwj': 'Ợ'}
>>> telex_mappings['eef']
'ề'
>>> telex_mappings['aaf']
'ầ'
>>> telex_mappings['uw']
'ư'
Und der Eingabezeichenfolge:
>>> s = 'Nguyeefn Traafn Anh Thuw'
Die gewünschte Funktion wäre so etwas wie:
>>> func('Nguyeefn Traafn Anh Thuw')
'Nguyên Trân Anh Thư'
ich habe versucht:
Aber wir sehen, dass es einen Schlüssel für 'aa' gibt, der die Ersetzung zuerst vor 'aaf' bewirkt. Idealerweise sollten die längeren Schlüssel zuerst ersetzt werden.
Wie sollte der Austausch so sein, dass es möglich ist, Teilstrings aus einer Schlüsselwerttabelle zu ersetzen, beginnend mit dem längsten Schlüssel?
Gibt es eine Art von Regex-Methoden, anstatt alle Schlüssel/Wert-Paare im Mapping zu durchlaufen?
Würde 'lambda übereinstimmen: telex_mappings [match.group (0)]' sei das gleiche? – alvas
@alvas [Ja, es ist standardmäßig "Gruppe (0)".] (Https://docs.python.org/3/library/re.html#re.match.group) –
Thans @Rawing! Dann denke ich 'telex_mapping.get (m.group (0), m.group (0))' wäre gut, um den KeyError zu vermeiden =) – alvas