我有下面的正则表达式有3个替换(见下面的整个正则表达式),每个都有自己的前缀和后缀字符.我觉得这是过分重复,并希望尽可能简化.我在一个不正确形成的JSON字符串中匹配值,以替换没有带索引键的键的值.
每个交替应该与前缀和后缀对匹配子表达式.我此时有3对,但这可能会改变.如果我有更多对,整个正则表达式将成为修改和理解我是否需要修改重复子表达式的噩梦.
题
如何缩短下面的整个正则表达式而不需要重复列出的后缀和前缀对的子表达式?
子表达,在每次交替中重复
("(?:[^\\"]+|\\.)*")
前缀/后缀对
{,
,,,
,}
整个正则表达式
/\{("(?:[^\\"]+|\\.)*")(?=,)|,("(?:[^\\"]+|\\.)*")(?=,)|,("(?:[^\\"]+|\\.)*")(?=\})/g
测试字符串
{"trailer":"","pallet":"A","date":"11-Dec-15","c","z","a"}
{"trailer":"","pallet":"A","a","date":"11-Dec-15"}
{"a","trailer":"","pallet":"A","date":"11-Dec-15"}
{"a","trailer":"","pallet":"A","date":"11-Dec-15","z\""}
{"trailer":"","pallet":"A","11-Dec-15"}
{"trailer\"","pallet":"A","11-Dec\"-15","z\""}
实例
请限制正则表达式替换的答案而不是JSON验证技术,因为我试图更好地理解正则表达式,这只是我使用的示例.