替换所有语言中的字母数字除外的所有字符

时间:2019-07-04 08:44:40

标签: python python-regex

大家好,我想问一下如何使用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)

任何帮助将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:1)

将第二行替换为:

template<typename T, SizeType D, typename SizeType = int>
class StaticArray{};
//...
StaticArray<float, 5> s; // = StaticArray<float, 5, int>
StaticArray<float, (1<<40), size_t>; // 1<<40 doesn't fit in int

答案 1 :(得分:0)

您可以指定仅删除特殊字符/标点符号

puncts = re.escape(string.punctuation)
print re.sub(r'['+ puncts +']', '', your_string)

答案 2 :(得分:0)

您可以尝试以下操作:

import re
string = open('abc.txt', encoding='utf-8').read()
new_str = re.sub('[/~!@#$%^*()_+{}<>:"|-]', ' ', string) # put your characters to replace here
open('abc.txt', 'w', encoding='utf-8').write(new_str)

输出为:

abcà cdéf  www