我在 Python 中有一个 Unicode 字符串,我想删除所有重音符号(变音符号)。
我在网上找到了一种优雅的方式来做到这一点(在 Java 中):
- 将 Unicode 字符串转换为其 _长规范化形式_(字母和变音符号使用单独的字符)
- 删除所有 Unicode 类型为“变音符号”的字符。
我是否需要安装诸如 pyICU 之类的库,或者仅使用 Python 标准库是否可行?那么 python 3 呢?
重要说明:我想避免使用从重音字符到非重音字符的显式映射的代码。
原文由 MiniQuark 发布,翻译遵循 CC BY-SA 4.0 许可协议
这个怎么样:
这也适用于希腊字母:
字符类别“Mn”代表
Nonspacing_Mark
,类似于 MiniQuark 的答案中的 unicodedata.combining (我没想到 unicodedata.combining,但它可能是更好的解决方案,因为它更明确) .请记住,这些操作可能会显着改变文本的含义。口音、元音等不是“装饰”。