搜索并替换正则表达式的JSON字符串

时间:2014-04-22 12:55:49

标签: regex json

我有一个对象的JSON字符串。

我想

  • 删除所有密钥,
  • 用'alpha'替换每个键

在任何父级子级或任何子级,整个对象中的条件是,如果键以'a'开头并以'z'结尾。

例如:

我有json字符串:

"{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e", "awefz" : { "l" : "c" }  } }, "c" : { "abcz" : "here" } }"
应用正则表达式后的

应该得到:

"{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e"  } }, "c" : {} }"
应用正则表达式后的

应该得到:

"{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e", "alpha" : { "l" : "c" }  } }, "c" : { "alpha" : "here" } }"

我只是在寻找那些正则表达式。

我只需要JSONString和regex(可以找到)作为输入。

我不希望通过关键字循环或递归循环。 我只想在JSON字符串上使用正则表达式。

有解决方法吗?

2 个答案:

答案 0 :(得分:0)

我认为这是你想要的正则表达式:

"a[^"]*z"\s*:

对于JSON:

{{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e", "awefz" : { "l" : "c" } } }, "c" : { "abcz" : "here" } }

你会得到:

{{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e", "alpha": { "l" : "c" } } }, "c" : { "alpha": "here" } }

http://regex101.com/r/jV0qH0


<强>更新
至于你想要的其他正则表达式(删除键和值) - 我担心这是不可能的,因为JSON值不能表达为正则表达式(它们具有平衡的花括号,不能表示为常规表达式),所以你必须找到其他方法。

答案 1 :(得分:0)

正则表达式1:

,?\s*"a[^"]*z"\s*:[^}]+

替换为:''

输出:

"{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e"} } }, "c" : {} }"

演示:http://regex101.com/r/rO0yN0

正则表达式2:

a[^"]*z

替换为:alpha

输出:

"{ "a" : { "b" : 4 }, "b" : { "c" : { "d" : "e", "alpha" : { "l" : "c" } } }, "c" : { "alpha" : "here" } }"

演示:http://regex101.com/r/wB0rC9