我有一个对象的JSON字符串。
我想
在任何父级子级或任何子级,整个对象中的条件是,如果键以'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字符串上使用正则表达式。
有解决方法吗?
答案 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" } }
<强>更新强>
至于你想要的其他正则表达式(删除键和值) - 我担心这是不可能的,因为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" } }"