如何剥离双倍空格并留下新线?没有re
可以吗?
如果我有类似的东西:
string = ' foo\nbar spam'
我需要得到:
'foo\nbar spam'
' '.join(string.split())
删除所有空格,包括新行:
>>> ' '.join(string.split())
'foo bar spam'
' '.join(string.split(' '))
什么都不做。
答案 0 :(得分:7)
>>> text = ' foo\nbar spam'
>>> '\n'.join(' '.join(line.split()) for line in text.split('\n'))
'foo\nbar spam'
这将它分成几行。然后它按空格分割每一行,并用单个空格重新连接。然后它重新加入线条。
答案 1 :(得分:2)
可以使用strip或lstrip函数:
line = ' foo\nbar spam'
while ' ' in line:
line = line.replace(' ', ' ')
line = line.strip(' ')
答案 2 :(得分:1)
text = [' '.join(i.split()) for i in text.split('\n') if not i.isspace()]
text = '\n'.join(text)