正则表达式模式替换括号前的无效逗号

时间:2018-07-24 22:31:22

标签: regex pattern-matching

我正在尝试创建一种模式来替换以下字符串中的无效逗号(即,括号末尾的逗号)

[{"terms": {"color": [ "Green", "White",]}},]

无效的逗号是:",]},]之后的逗号

所以我需要写一个模式来找到最后一个",]},]

我现在拥有的模式是

[\}]+\s*,+\s*\]

这似乎选择了}},],但是我只想要},]。 它正在选择最后两个大括号而不是一个。

1 个答案:

答案 0 :(得分:0)

实际上令人讨厌的子字符串是一个逗号,后跟具有结构性语义/语法模式而不是内容的字符。前面的符号(双引号,大括号)无关紧要。因此,您可以统一使用的模式并简化正则表达式:

/,\s*([\]\}])/g

将所有匹配项替换为捕获组#1。

根据需要将符号添加到捕获组内的字符类中(我已经添加了右括号)。