我在Python中有一个要求,我需要使用正则表达式替换所有带有唯一字符的逗号,例如"$"
或"|"
。我试过这样做,但无法实现我的目标。
请在下面找到我需要更换的示例字符串。
例如考虑下面的字符串: -
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))
在上面的字符串中,我想用" $"替换括号内的所有逗号。即
SUM(Column_1 $ Column_2)
CONCAT("str1"$"str2"$"str3")
ADD(len(str1)$avg(column_1)
$sum(column_1$column_2$column_3))
我必须在正则表达式的帮助下完成此操作。我能够为2个值执行此操作,意味着当()中只有一个逗号我能够替换但是当使用多个逗号的场景进行测试时,我的表达式失败了。
答案 0 :(得分:0)
(\s?,\s?)(?=[^\(]*\))|(\s?,\s?)(?=(?:[^\(]*\([^\(]*?\))*\))
请参阅:https://regex101.com/r/uT1gQ7/3
如果在显示另一个)
之前跟随(
,则使用 lookahead ,查看级别1深度,它会使逗号与其周围的可选空格匹配。第二种方法是查看剩下的字符串是否除了其他)
结构之外还有一个附加(stuff)
,它应该可以解决问题。