Sql 使用正则表达式替换括号中的逗号

Sql 使用正则表达式替换括号中的逗号,sql,regex,python-2.7,Sql,Regex,Python 2.7,Python中有一个要求,即我需要使用正则表达式将所有逗号替换为唯一字符,例如“$”或“|”。我试过这样做,但没能达到我的目标 请在下面找到我需要替换的示例字符串 例如考虑下面的字符串:-< /P> SELECT 'column1' AS "Column 1" , 'column2' AS "Column 2" , 'column3' AS "Column 3", SUM(Column_1, Column_2) , 'column5' AS "Column 5" , CONCAT(

Python中有一个要求,即我需要使用正则表达式将所有逗号替换为唯一字符,例如
“$”
“|”
。我试过这样做,但没能达到我的目标

请在下面找到我需要替换的示例字符串

例如考虑下面的字符串:-< /P>

SELECT 'column1' AS "Column 1" , 
  'column2' AS "Column 2" , 
  'column3' AS "Column 3", 
SUM(Column_1, Column_2) , 'column5' AS "Column 5" ,
CONCAT("str1","str2","str3") , 
ADD(len(str1),avg(column_1),sum(column_1,column_2,column_3)) 
在上面的字符串中,我想用“$”替换括号内的所有逗号,即

我必须借助正则表达式来实现这一点。我可以对2个值执行此操作,这意味着当()中只有一个逗号时,我可以替换,但当使用多个逗号的场景进行测试时,我的表达式失败了。

像这样的正则表达式<代码>(\s?,\s?(=[^\(]*\))|(\s?,\s?(=(?:[^\(]*\)*)))

见:


如果逗号后跟
,则在另一个
出现之前,使用向前看,查看级别1的深度。第二种选择是查看剩余字符串除了其他
(填充)
结构之外,是否还有一个传统的
,这应该能奏效。

非常感谢您的回复。你给出的解决方案对我部分有效。但它与下面部分中的前2个逗号不匹配,该部分位于ADD函数内部。加法(len(str1)、avg(column_1)、sum(column_1、column_2、column_3))现在就像一个符咒一样工作!!谢谢。我真的需要学很多这方面的东西。
SUM(Column_1 $ Column_2)
CONCAT("str1"$"str2"$"str3")
ADD(len(str1)$avg(column_1)
  $sum(column_1$column_2$column_3))