python - 替换所有语言中除字母数字以外的所有字符
问题描述
如何使用 Python 将特殊字母/字符保留在文本文件中?
输入文本文件:
abcÃ/cdéf@-www
我想删除符号,但保留字母和特殊字母、符号含义~!@#$%^*()_+{}<>:"|
等。在我尝试运行我的代码之后,这是我得到的:
输出文本文件:
abc cd f www
符号已被删除并替换为我想要的空格,但特殊字母已被删除并替换为我不想要的空格。有没有办法删除符号但只保留特殊字母?
预期的输出文本文件:
abcà cdéf www
这是我的代码:
string = open('abc.txt', encoding='utf-8').read()
new_str = re.sub('[^a-zA-Z0-9\n\.]', ' ', string)
open('abc.txt', 'w', encoding='utf-8').write(new_str)
解决方案
将您的第二行替换为:
new_str = re.sub('[^\w\s.,;]', ' ', string)