2015-12-22 230 views
0

我想转换"categories": ["Doctors", "Health & Medical"],正则表达式 - 括号

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

。换句话说内精确匹配的文本,我想找到" ,"(在开放qoute和逗号的中间空间)。

然后替换,

然而,因此使用" ,"单独的文件中其他地方" ,"重复是不够的。最好的最好的就是内[...]

例如找到" ,": “类别”: “医生”, “健康&医疗”], “城市”: “凤凰”, “伯爵”:9

非常感谢你提前

+2

什么语言是您使用? –

+0

我只是使用文本编辑器重新格式化字符串,以便我可以将其导入到其他Java程序中。我可以用'\ [“。*”]'在'[..]'内部找到所有内容,但是不足以缩小为'“,”' – user5705407

+5

不要将JSON视为字符串。解析它,在需要的地方转换结构,然后根据需要重新绑定。正则表达式在这里是一个不错的选择。 – Amadan

回答

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