折叠连续的空格

Dav*_*542 5 python regex whitespace

我如何在python中折叠run-on空格?

"a b   c   d      e" --> "a b c d e"
Run Code Online (Sandbox Code Playgroud)

Lev*_*von 14

假设

s = 'a b   c   d      e'
Run Code Online (Sandbox Code Playgroud)

然后

' '.join(s.split())
'a b c d e'
Run Code Online (Sandbox Code Playgroud)

会给你指定的输出.

这可以通过使用split()将字符串分解为单个字符列表,['a', 'b', 'c', 'd', 'e']然后使用join()函数将其中的单个空格再次连接到字符串中.它split()还会处理任何前导或尾随空白.

基于Simple比复杂(Python的禅)更好,以避免正则表达式" 两个问题 "问题:)

  • @Ωmega我不明白..你在谈论可能的隐形空白字符吗?我认为OP会提到这一点.如果你在"d"和"e"之间混合了一系列标签和空白,那么当你"崩溃"时它会保留下来呢?标签?空白? (2认同)

JBe*_*rdo 5

使用正则表达式(因为标记):

re.sub('\s+', ' ', "a b   c   d      e")
Run Code Online (Sandbox Code Playgroud)

  • @Ωmega我不明白你为什么这么认为.另外,为什么选择提供正确输出的答案呢? (2认同)