如何使用正则表达式替换除空格和换行符旁边的数字以外的所有其他符号 python3

How to replace all other symbols besides digits beside whitespace and newline using regex python3

所以,我有一个文件,我正在做这个作为一项任务。我首先用 0 替换了所有数字,然后用 1 替换了所有字母。之后,我应该用 2 替换所有其他符号,但我想保留空格和换行符。这是代码:

import re

ulaz = input("Unesite ime fajla:")
izlaz = input("Unesite ime fajla:")

with open(ulaz) as existing_file:
    text = existing_file.read()
    text = re.sub(r'[0-9]', '0', text)
    text = re.sub(r'[A-Za-z]', '1', text)
    text = re.sub(r'\D', '2', text)
    print(text)

    with open(izlaz, "w") as file_new:
        file_new.write(text)

如您所见,我正在读取一个文件并写入另一个文件。最后的 re.sub 替换所有包括空格和换行符。我搜索了一个答案,但没有找到一个可以更改所有其他符号的答案,不包括数字、空格和换行符。

我不喜欢你最后的正则表达式替换,因为那时“所有其他符号”应该定义为 0 或 1(或你也想保留的空格)以外的任何东西。考虑这个稍微修改过的版本:

text = existing_file.read()
text = re.sub(r'[0-9]', '0', text)
text = re.sub(r'[A-Za-z]', '1', text)
text = re.sub(r'[^01\s]', '2', text)