正则表达式分组的多次匹配然后替换。

图片描述

现在我写的正则替换,会丢失t1数据,
想知道应该如何写这个正则,


// 原始数据
{
    "field_626kU__c":["t1","t2"],
    "field_7oOpr__c":["t3"]
}
// 目标结果
{
    "field_626kU__c":[t1,t2],
    "field_7oOpr__c":[t3]
}
// 当前替换结果
{
    "field_626kU__c":[t2],
    "field_7oOpr__c":[t3]
}

当前正则:
:.*\[("([^,]+)"[,]*)+?\]
:[$2]
阅读 3.7k
2 个回答
("([^,|:]+)")(?=\]|,)
$2

原始数据不是 JSON 嘛,直接写个脚本搞定啦。

非要用正则的话,只能定位到「两边是方括号或者逗号的带双引号字符串」,然后去掉引号了。

另外小心如果你的字符串内部原本就有 " 的话会被转义的,你要不要拿掉转义符呢?

很奇怪的需求啊,信息不足只能告诉你这么多了。参看X-Y问题