首页 > 解决方案 > 替换所有语言中除字母数字以外的所有字符

问题描述

如何使用 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)

标签: pythonregex

解决方案


将您的第二行替换为:

new_str = re.sub('[^\w\s.,;]', ' ', string)

推荐阅读