有没有一种相对直接的方法可以从希腊字符串中删除变音符号?例如,如果字符串是“Οπάνωόροφος”,我希望它成为“οπανωοροφος”,仍然用希腊语,没有重音。我想避免使用字符串替换,因为它可能会很慢,并且大多数类似问题的答案都使用unidecode来将希腊字符转换为英文,但我不希望这样。
大多数关于任何事物的官方论文都只需要大写而没有变音符号。
这样行吗?
>>> import unicodedata as ud
>>> s="Ο πάνω όροφος"
>>> d = {ord('\N{COMBINING ACUTE ACCENT}'):None}
>>> ud.normalize('NFD',s).upper().translate(d)
'Ο ΠΑΝΩ ΟΡΟΦΟΣ'
使用NFD进行归一化可将基本代码点与变音符号分开。该d
转换表列出了统一有序的翻译......在这种情况下,删除音调符号。我不熟悉希腊的变音符号用法,因此可能需要扩展表格。
.replace('\u0301','')
可以用于一种重音符号,但是.translate()
如果有多个替代音色则效率更高。
跳过.upper()
以匹配您的原始问题:
>>> ud.normalize('NFD',s).translate(d)
'Ο πανω οροφος'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句