删除 Python 中的所有空字符
Removing all of empty characters in Python
我想用单个空字符替换所有空字符。我试过这个:
import re
fin = open("toutput_des.txt", "r")
fout = open("toutput2_des.txt", "w")
for line in fin:
fout.write(re.sub('\s+',' ',line))
fin.close()
fout.close()
它起作用了,但它还在每行末尾用一个空字符替换了“换行”字符。如果我想排除“新行”,我该如何修改正则表达式?
我也试过 '\s+\b' 但它删除了文件的所有内容。
您可以在替换后简单地追加换行符。
不过,这里不需要正则表达式,可以使用
for line in fin:
fout.write(' '.join(line.split()) + '\n')
请注意,line.split()
将字符串与任何白色 space 分开,同时删除前导和尾随白色 space,并且 ' '.join(...)
使用单个 space.
如果您需要使用正则表达式解决方案,那么您可以从 \s
中减去 \n
:
re.sub(r'[^\S\n]+', ' ', line)
[^\S\n]+
正则表达式匹配除 non-whitespace 和换行字符以外的任何一个或多个字符,即它匹配任何白色 space 字符但换行字符。
您可能还想 .lstrip()
结果。
我想用单个空字符替换所有空字符。我试过这个:
import re
fin = open("toutput_des.txt", "r")
fout = open("toutput2_des.txt", "w")
for line in fin:
fout.write(re.sub('\s+',' ',line))
fin.close()
fout.close()
它起作用了,但它还在每行末尾用一个空字符替换了“换行”字符。如果我想排除“新行”,我该如何修改正则表达式? 我也试过 '\s+\b' 但它删除了文件的所有内容。
您可以在替换后简单地追加换行符。
不过,这里不需要正则表达式,可以使用
for line in fin:
fout.write(' '.join(line.split()) + '\n')
请注意,line.split()
将字符串与任何白色 space 分开,同时删除前导和尾随白色 space,并且 ' '.join(...)
使用单个 space.
如果您需要使用正则表达式解决方案,那么您可以从 \s
中减去 \n
:
re.sub(r'[^\S\n]+', ' ', line)
[^\S\n]+
正则表达式匹配除 non-whitespace 和换行字符以外的任何一个或多个字符,即它匹配任何白色 space 字符但换行字符。
您可能还想 .lstrip()
结果。