Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除外来字母,同时在python中保留带有重音的英文字母_Python_Unicode_Ascii - Fatal编程技术网

删除外来字母,同时在python中保留带有重音的英文字母

删除外来字母,同时在python中保留带有重音的英文字母,python,unicode,ascii,Python,Unicode,Ascii,有没有办法删除外来字母,但在python中保留带有重音的英文字母 e、 g.我希望将Pic d'211转换为Pic d'Os,但没有马萨纳 转换为Ma Sa Na-理想情况下,我希望它转换为空白字符串 我使用了unidecode,但unidecode也将外来字母转换为ascii 感谢您对此进行研究。现代正则表达式引擎支持字符类拉丁语或isLatin,这将匹配重音或非重音拉丁字母 只匹配所需内容的正则表达式会稍微复杂一些。您不想简单地匹配字母或数字,因为它们将匹配其他脚本中的字母和数字。您也不希望

有没有办法删除外来字母,但在python中保留带有重音的英文字母

e、 g.我希望将Pic d'211转换为Pic d'Os,但没有马萨纳 转换为Ma Sa Na-理想情况下,我希望它转换为空白字符串

我使用了unidecode,但unidecode也将外来字母转换为ascii


感谢您对此进行研究。

现代正则表达式引擎支持字符类
拉丁语
isLatin
,这将匹配重音或非重音拉丁字母


只匹配所需内容的正则表达式会稍微复杂一些。您不想简单地匹配
字母
数字
,因为它们将匹配其他脚本中的字母和数字。您也不希望包含或排除所有组合重音:您希望小写拉丁字母a+组合急性重音显示为á,但希腊重音字母不显示为á。因此,您可能希望匹配类似于
(\p{Latin}\p{Mark}*)\p{标点符号}\p{Separator}

的内容。您可以使用正则表达式查找哪些子字符串具有字符类
字母
数字
,但不具有
拉丁
的字符。感谢您花时间回答这个问题。我确实希望接受拉丁字符类,因为我希望包含带有重音的字母。所以我现在可以使用一个只接受字母、数字和拉丁字符的正则表达式,而不是使用unidecode——我不知道有一个拉丁字符类,所以这很有帮助。如果您愿意,您可以为这个问题添加一个答案,说明我应该使用正则表达式,包括字母、数字和拉丁字符类,我会接受它。