regex - 正则表达式模式替换括号前的无效逗号
问题描述
我正在尝试创建一个模式来替换以下字符串中的无效逗号(即括号结束前的逗号)
[{"terms": {"color": [ "Green", "White",]}},]
无效的逗号是:and 之后的",]
逗号},]
所以我需要写一个模式来找到最后",]
一个},]
我现在的模式是
[\}]+\s*,+\s*\]
这看起来可以选择}},]
但我只想要},]
。它选择最后两个大括号,而不是只选择一个。
解决方案
实际上有问题的子字符串是一个逗号,后跟具有结构语义/语法模式的字符,而不是内容。前面的符号(双引号、大括号)无关紧要。因此,您可以统一您所追求的模式并简化您的正则表达式:
/,\s*([\]\}])/g
用捕获组 #1 替换任何匹配项。
根据需要将符号添加到捕获组内的字符类(我已经添加了右大括号)。
推荐阅读
- php - 使用imagemagick显示pdf文件预览图片报错
- ios - iOS Swift VideoToolBox 解压帧 EXC_BAD_ADDRESS 错误
- kotlin - 如何使用核心库中提供的运算符递归生成 RxJava Flowable?
- javascript - 在 express js 服务器中使用节点应用程序
- python - 如何跳过一个标签并移动到下一个标签 - 使用 python 抓取网页
- html - HTML 可折叠按钮 - 如何将按钮突出显示为 href?
- apache-spark - 为什么 Spark RDD 为小数据保留更多数量的分区
- android - 如何将项目添加为依赖项?
- ios - 在 swift 5 中从另一个 tableview 控制器调用 tablview 控制器
- python - Pandas 中的列成对重组