正则表达式 - 匹配方括号内的确切文本

时间:2015-12-22 01:00:46

标签: regex

我想转换"categories": ["Doctors", "Health & Medical"],

"categories": ["Doctors, Health & Medical"],

换句话说,我想找到" ,"(在打开qoute和逗号的中间有空格)。

然后替换为,

但是," ,"在文档的其他地方重复,因此仅使用" ,"是不够的。最好的方法是在" ,"

中找到[...]

例如:“类别”:[“医生”,“健康与医疗”],“城市”:“凤凰”,“计数”:9

非常感谢您提前

1 个答案:

答案 0 :(得分:2)

正如评论中所指出的,如果可以的话,你应该避免使用正则表达式。

使用单行在JavaScript中实现类似的功能非常简单。

例如,您可以使用.join()方法:

obj.categories = [obj.categories.join(', ')];

Example Here

但是,如果您没有选择,可以使用以下内容:

/((?:\[[^\]]*?)|(?:(?<!^)\G[^\]]*?))(?:", ")(?=[^\]]*"\])/g

然后将匹配项替换为\1,

Example Here

根据您的测试用例,字符串:

"categories": ["Doctors", "Health", "Other"], "city": "Phoenix", "count": 9

会输出:

"categories": ["Doctors, Health, Other"], "city": "Phoenix", "count": 9