0

我有一个 .csv 文件,其中可能混合了括号:

line = "fdf,dfdf,(1,2,3,4,5),(ss,dd),"

现在我想将所有的 () 替换为“”,使其看起来像这样:

line = 'fdf,dfdf,"1,2,3,4,5","ss,dd",'

我的代码是:

line=re.sub(',(', ',"', line)
line=re.sub('),', '",', line)

但是我收到了这个错误:

 ...
 File "/usr/local/Python-2.7/lib/python2.7/re.py", line 151, in sub
    return _compile(pattern, flags).sub(repl, string, count)
  File "/usr/local/Python-2.7/lib/python2.7/re.py", line 242, in _compile
    raise error, v # invalid expression
sre_constants.error: unbalanced parenthesis

这里有什么问题?!!

4

3 回答 3

4

简单的字符串替换怎么样

print strs.replace("(",'"').replace(")",'"')

不需要正则表达式

有些人在遇到问题时会想“我知道,我会使用正则表达式”。现在他们有两个问题。

于 2013-05-16T18:31:42.320 回答
2

(在正则表达式中具有特殊含义,您可以使用它们进行转义或使用方括号\(放置它们。[]

>>> import re
>>> strs = "fdf,dfdf,(1,2,3,4,5),(ss,dd),"
>>> re.sub(r"[()]",'"',strs)
'fdf,dfdf,"1,2,3,4,5","ss,dd",'
#or
>>> re.sub(r"\(|\)",'"',strs)
'fdf,dfdf,"1,2,3,4,5","ss,dd",'
于 2013-05-16T18:29:38.900 回答
1

另一个是考虑这个..

import re 
re.sub('\)', '\"', re.sub('\(', '\"', line))

您所做的是更换一个 pran 一次,然后更换另一个。

于 2013-05-16T18:39:42.750 回答