例如
s = "a b c d e f "
需要缩减为
s = "a b c d e f "
现在我做这样的事情
for i in xrange(arbitrarilyHighNumber,1,-1):
s = s.replace(" "*i," ")
但我想让它更具动感和Pythonic(并假设任意数量的空格)。如何用单个空格替换每个连续的空间阈值?
答案 0 :(得分:4)
您可以使用re.sub
:
>>> import re
>>> s = "a b c d e f "
>>> re.sub('\s{2,}', ' ', s)
'a b c d e f '
>>>
\s{2,}
匹配两个或更多空格字符。
答案 1 :(得分:1)
因为已经给出了正则表达式的答案。您也可以使用迭代替换来完成它。
while s.find(" ") is not -1:
s = s.replace(" ", " ")
我分裂和重新加入的原始答案摆脱了前导和尾随空格
' '.join(s.split())