删除外国字母,同时在python中保留带有重音符号的英语字母

时间:2018-12-05 21:15:10

标签: python unicode ascii

有什么办法可以删除外来字母,但在python中保留带有重音的英文字母?

例如我希望将Pic d's转换为Pic d'Os,但不希望马萨纳转换为Ma Sa Na-理想情况下,我希望将其转换为空白字符串。

我使用过unidecode,但是unidecode还将外国字母转换为ascii。

感谢您对此进行调查。

1 个答案:

答案 0 :(得分:1)

现代的正则表达式引擎支持字符类LatinisLatin,它们将匹配带重音符号或无重音拉丁字母。

仅匹配您想要的正则表达式会稍微复杂一些。您不想仅匹配LetterNumber,因为它们将匹配其他脚本的字母和数字。您既不想包含也不排除所有合并的重音符号:您希望小写的拉丁字母a +合并的重音符号显示为á,但是不希望包含重音符号的希腊字母。因此,您需要匹配(\p{Latin}\p{Mark}*)|\p{Punctuation}|\p{Separator}之类的东西。

相关问题