regEx匹配逗号并用双引号括起来

时间:2016-07-18 19:35:32

标签: regex

我有以下逗号分隔列表:

"keywords": ["AAA,Gas prices,GasBuddy,South Carolina"],

我希望每个单词都用双引号括起来:

"keywords": ["AAA","Gas prices","GasBuddy","South Carolina"],

我需要一些regEx指导。我是新手。谢谢!

3 个答案:

答案 0 :(得分:0)

你想要的正则表达式是s/(\w)"?,"?(\w)/\1","\2/g。如何在您的环境中实际实现这一点。

本质上,正则表达式将确保逗号两边都有单词字符(\w s)(以避免匹配字符串末尾的单词),捕获它们,然后转储它们用双引号和逗号返回。

编辑:为第一部分添加了可选引号,以便捕获"不平衡"引号。

答案 1 :(得分:0)

类似的方法是,找到没有相邻双引号的逗号......

$ echo "[\"AAA,Gas prices,GasBuddy,South Carolina\"]" | 
  sed -r 's/([^"]),([^"])/\1","\2/g'

["AAA","Gas prices","GasBuddy","South Carolina"]

答案 2 :(得分:0)

我根本不会使用正则表达式。如果这是Javascript,我会从对象中获取字符串,用.split()解析它,然后用该数组替换它。



var object = {
    "keywords": ["AAA,Gas prices,GasBuddy,South Carolina"]
};

var str = object.keywords[0];
var arr = str.split(',');
object.keywords = arr;
console.log(object);