gpt4 book ai didi

python - 删除特殊字符但不删除重音字母

转载 作者:太空宇宙 更新时间:2023-11-04 01:58:23 26 4
gpt4 key购买 nike

我做了以下事情:

re.sub(r'[^ \nA-Za-z0-9/]+', '', document)

删除所有不是字母数字、空格、换行符或正斜杠的字符。

所以我基本上想删除除换行符和正斜杠之外的所有特殊字符。

但是,我不想删除各种语言的重音字母,例如法语、德语等。

但是如果我运行上面的代码然后例如这个词

摩托头

成为

Motrhead

我不想这样做。

那么如何在不删除重音字母的情况下运行上面的代码呢?

更新:

下面的@MattM 提出了一种解决方案,它适用于英语、法语、德语等语言,但它肯定不适用于波兰语等所有重音字母仍被删除的语言。

最佳答案

我很确定这会满足您的需要

x = re.sub(r'[^ \nA-Za-z0-9À-ÖØ-öø-ÿ/]+', '', 'Motörhead')

还有 check here有关 javascript 正则表达式的讨论,尽管有任何 differences,它还是有一些相关信息


编辑 -

要扩展 Outcast 的新问题 - 是的,您可以包含非拉丁字符。然而,它可能变得太麻烦了。如果你看一个list of Unicode chars ,我包括了一系列带重音的拉丁字符。因此,如果您还想包含所有西里尔字符,我们会将 Ѐ-ӿ 添加到正则表达式中。

import re

yourString = 'Cyrillic Char Ѥ'
yourString = re.sub(r'[^ \nA-Za-z0-9À-ÖØ-öø-ÿЀ-ӿ/]+', '', yourString)
text_file = open("Output.txt", "wb")
text_file.write(yourString.encode('utf8'))
text_file.close()

但是,使用此方法时,您可能必须包含许多范围,具体取决于您想要或不想要的来自哪种语言的字符。

关于python - 删除特殊字符但不删除重音字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56279948/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com