首页 > 解决方案 > 正则表达式模式替换括号前的无效逗号

问题描述

我正在尝试创建一个模式来替换以下字符串中的无效逗号(即括号结束前的逗号)

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

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

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

我现在的模式是

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

这看起来可以选择}},]但我只想要},]。它选择最后两个大括号,而不是只选择一个。

标签: regexpattern-matching

解决方案


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

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

用捕获组 #1 替换任何匹配项。

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


推荐阅读