re.sub用逗号替换空格

时间:2014-11-15 19:23:11

标签: python regex string replace

我有一个看起来像这样的项目列表:

 2.4       -2.0           4.3
-6.0       12.5           1.0

我想要删除所有这些空格并用","替换它们。 (逗号)除了第一个数字前面的空格(它们应该被删除(空格)而不是被任何东西替换)。因此,替换后,上面的字符串项应该如此:

2.4,-2.0,4.3
-6.0,12.5,1.0

不喜欢这样:

,2.4,-2.0,4.3
,-6.0,12.5,1.0

以下代码的作用如下:

newStrings = []
for s in strings:
    newStrings.append(re.sub('\s+', ',', s))

应该使用re.sub的正则表达式来实现它? 谢谢。

2 个答案:

答案 0 :(得分:13)

要删除前导空格和尾随空格,可以使用.strip(),然后使用正则表达式\s+替换连续的空白字符:

>>> import re
>>> s = " 2.4       -2.0           4.3"
>>> re.sub("\s+", ",", s.strip())
'2.4,-2.0,4.3'

答案 1 :(得分:0)

有很多解决方案......这甚至没有简要介绍整个主题,但它有效:

快速解决方案

In [1]: import re
   ...: d_in = "strip \t\r\n\x00er \ter\rMY\   nr\x00 \t\r\nSPAC       ES\x00  ! "
   ...: d_out = re.sub("\s+", r",", d_in)
   ...: d_out
   ...: 
Out[1]: 'strip,\x00er,er,MY\\,nr\x00,SPAC,ES\x00,!,'