用单个空间替换所有多空间

2024-09-29 18:42:24 发布

您现在位置:Python中文网/ 问答频道 /正文

例如

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," ")

但我想让它更具动态性和python风格(并假设有任意数量的空格)。如何用单个空间替换每个相邻的空间阈值?你知道吗


Tags: infor数量风格空间阈值replace空格
2条回答

因为正则表达式已经给出了答案。您还可以通过迭代替换来完成。你知道吗

while s.find("  ") is not -1:
    s = s.replace("  ", " ")

我最初关于拆分和重新联接的回答去掉了前导和尾随空格

' '.join(s.split())

您可以使用^{}

>>> import re
>>> s = "a b        c d    e                            f  "
>>> re.sub('\s{2,}', ' ', s)
'a b c d e f '
>>>

\s{2,}匹配两个或多个空格字符。你知道吗

相关问题 更多 >

    热门问题