如何使用正则表达式 python3 替换除空格和换行符旁边的数字以外的所有其他符号
Posted
技术标签:
【中文标题】如何使用正则表达式 python3 替换除空格和换行符旁边的数字以外的所有其他符号【英文标题】:How to replace all other symbols besides digits beside whitespace and newline using regex python3 【发布时间】:2020-10-23 20:07:49 【问题描述】:所以,我有一个文件,我正在做这个任务。我首先用 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 替换所有包括空格和换行符。我已经搜索了一个答案,但没有找到一个可以改变所有其他符号的答案,不包括数字、空格和换行符。
【问题讨论】:
【参考方案1】:您最终的正则表达式替换对我来说很重要,因为此时“所有其他符号”应定义为 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)
【讨论】:
谢谢,但我不得不删除所有三行中的 + 号,因为加号会给我一个数字代表整个单词而不是每个字符等等。以上是关于如何使用正则表达式 python3 替换除空格和换行符旁边的数字以外的所有其他符号的主要内容,如果未能解决你的问题,请参考以下文章