如何去除双空格并保留换行符?不使用 re
,是否仍然可能实现?
如果我有类似这样的内容:
string = ' foo\nbar spam'
我需要获取:
'foo\nbar spam'
' '.join(string.split())
可以删除所有空白字符,包括换行符:
>>> ' '.join(string.split())
'foo bar spam'
' '.join(string.split(' '))
不会做任何事情。
如何去除双空格并保留换行符?不使用 re
,是否仍然可能实现?
如果我有类似这样的内容:
string = ' foo\nbar spam'
我需要获取:
'foo\nbar spam'
' '.join(string.split())
可以删除所有空白字符,包括换行符:
>>> ' '.join(string.split())
'foo bar spam'
' '.join(string.split(' '))
不会做任何事情。
>>> text = ' foo\nbar spam'
>>> '\n'.join(' '.join(line.split()) for line in text.split('\n'))
'foo\nbar spam'
这将把它分成几行。然后按空格拆分每一行,并用单个空格重新连接。最后重新连接这些行。
可以使用strip或lstrip函数:
line = ' foo\nbar spam'
while ' ' in line:
line = line.replace(' ', ' ')
line = line.strip(' ')
text = [' '.join(i.split()) for i in text.split('\n') if not i.isspace()]
text = '\n'.join(text)
strip
函数用于移除字符串开头和结尾的空格,但不会移除字符串内部的空格。 - I159'(3 spaces)foo\nbar(6 spaces)spam
的输出是什么? - jamylak