我该如何在Python中折叠连续的空白符?
"a b c d e" --> "a b c d e"
s = 'a b c d e'
那么
' '.join(s.split())
'a b c d e'
这将为您提供指定的输出。
这是通过使用 split() 将字符串分解为单个字符列表 ['a', 'b', 'c', 'd', 'e']
, 然后再使用 join() 函数将它们用单个空格连接起来形成一个字符串。 split()
还会处理任何前导或尾随空白。
基于 Python 之禅中的 简洁胜于复杂,以避免正则表达式 "two problem" 问题 :)
使用正则表达式 (因为有标签):
re.sub('\s+', ' ', "a b c d e")
\s{2,}
。这样可以将单个空格保留不变,而不是用其自身替换。仍然要点赞。 - Tim Pietzckerre.sub('\s+(?=\s)', '', str)
re.sub('(?:^\s+|\s+(?=\s)|\s+$)', '', str)
^
和 $
已经是零宽断言了,不需要用环视将它们包起来。 - Alan Moore