【问题标题】:Regex pattern to replace invalid comma before bracket正则表达式模式替换括号前的无效逗号
【发布时间】:2018-07-25 06:40:29
【问题描述】:

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

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

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

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

我现在的模式是

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

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

【问题讨论】:

    标签: regex pattern-matching


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 这个 /,\s*([]\}])/g 模式是否处理逗号和括号之间的空格、换行符、制表符、\r、\n、\t 等即喜欢,和]
    • 空白字符类匹配空格、制表符、回车符、换行符、换页符和垂直制表符:[ \t\r\n\f\v]
    猜你喜欢
    • 2021-11-10
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 1970-01-01
    • 2020-01-07
    相关资源
    最近更新 更多