Regex 替换所有出现的空格,直到第一个逗号正则表达式?

Regex 替换所有出现的空格,直到第一个逗号正则表达式?,regex,python-2.7,Regex,Python 2.7,所以基本上我有一个CSV,比如: 121\sdf\ 34 4333DSssD,23233,TECH,32, ... 第一个字符串是ID,但它应该有+而不是空格。它们被删掉了,所以现在在每一行上,直到第一个逗号,我需要用+替换所有空格 我正在考虑使用regex来处理这个和re.sub(使用python进行处理),但我只在获取空格时遇到了麻烦 希望StackOverflow能有所帮助:D这可以在没有正则表达式的情况下完成;只需在逗号上进行分区,然后操作左分区 with open('path/to/

所以基本上我有一个CSV,比如:

121\sdf\ 34 4333DSssD,23233,TECH,32, ...
第一个字符串是ID,但它应该有+而不是空格。它们被删掉了,所以现在在每一行上,直到第一个逗号,我需要用+替换所有空格

我正在考虑使用regex来处理这个和re.sub(使用python进行处理),但我只在获取空格时遇到了麻烦


希望StackOverflow能有所帮助:D

这可以在没有正则表达式的情况下完成;只需在逗号上进行分区,然后操作左分区

with open('path/to/input') as infile:
  for line in infile:
    left, comma, right = line.partition(',')
    print "%s%s%s" %(left.replace(' ', "+"), comma, right)

下面是一个不带正则表达式的解决方案(假设您有一个字符串,其中有一行名为
line
,这可能在迭代文件对象的
for
循环中):

或使用正则表达式:

import re
line = re.sub(r'^[^,]*', lambda m: m.group(0).replace(' ', '+'), line)

如果CSV字符串中的字段有一个
作为其数据的一部分,该怎么办?如果它有一个
\n
?RegEx可能不适合这样做。在处理CSV文件内容之前,必须使用正确的CSV文件解析器。如果不想分配分隔符,可以这样做:
left,right=line。partition(“,”)[::2]
假设文本中的每一行都是完整的CSV行是错误的,并且假设文件中的每一行都是分隔的字段也是错误的。它可以用于简单的情况,但这不是CSV文件的解析方式。
import re
line = re.sub(r'^[^,]*', lambda m: m.group(0).replace(' ', '+'), line)