想用正则表达式替换字符串数字

时间:2016-02-01 13:56:32

标签: json regex

我有一个json字符串,其值低于

"appId": 434832826

我想在数字周围添加双引号,以便json变为有效。

我尝试了replaceAll(":\\\s\\\d+", ":\"$0\"");

但它正在将值替换为

"appId":": 434832826"

我不确定这是否是正确的正则表达式。非常感谢帮助。提前致谢

2 个答案:

答案 0 :(得分:2)

您可以使用jq

jq '.appId|=tostring' input.json

想象一下,你有以下json:

{
    "appId": 434832826,
    "foo": "bar"
}

以上命令会产生:

{
  "appId": "434832826",
  "foo": "bar"
}

答案 1 :(得分:2)

将数字放入捕获组并使用以下正则表达式:

replaceAll(":\\\s*(\\\d+)", ":\"$1\"");