如何在python中折叠run-on空格?
"a b c d e" --> "a b c d e"
答案 0 :(得分:14)
假设
s = 'a b c d e'
然后
' '.join(s.split())
'a b c d e'
将为您提供指定的输出。
这可以通过使用split()将字符串分解为单个字符['a', 'b', 'c', 'd', 'e']
的列表,然后使用join()函数将其中的单个空格再次连接到一个字符split()
串。 {{1}}也会处理任何前导或尾随空白。
基于 Simple比复杂的(Zen of Python)更好,以避免正则表达式“two problem”问题:)
答案 1 :(得分:5)
使用正则表达式(因为标记):
re.sub('\s+', ' ', "a b c d e")
答案 2 :(得分:0)
如果您不关心前一个元素的前导空格和最后一个元素的尾随空格,请使用:
re.sub('\s+(?=\s)', '', str)
如果你这样做,那么删除那些前导和尾随空格的解决方案是:
re.sub('(?:^\s+|\s+(?=\s)|\s+$)', '', str)