Regex 用于检测具有特定属性的JSON对象属性的正则表达式
我希望从包含特定属性的属性中清除JSON字符串。在下面的示例中,我想删除其值为带有“_href”属性的对象的属性 原始字符串:Regex 用于检测具有特定属性的JSON对象属性的正则表达式,regex,Regex,我希望从包含特定属性的属性中清除JSON字符串。在下面的示例中,我想删除其值为带有“_href”属性的对象的属性 原始字符串: [{ "name": "Test", "junkAttributeA": { "_href": "string", "_type": "string" }, "junkAttributeB": { "_href": "string", "_type": "string" } }]
[{
"name": "Test",
"junkAttributeA": {
"_href": "string",
"_type": "string"
},
"junkAttributeB": {
"_href": "string",
"_type": "string"
}
}]
结果字符串:
[{
"name": "Test"
}]
我应该使用什么正则表达式模式来检测不需要的属性?注意:最好的解决方案是使用合适的解析器。它将以正确的方式很好地完成工作
用于检测属性的正则表达式是:
"[^"{}]+":\s*{[^{}]*"_href":[^{}]*}
用空字符串替换该正则表达式
注意:删除属性后,您必须进行一些额外的分析以删除不必要的逗号。这就是使用正确的解析器的原因之一
测试。您的语言肯定有一个JSON解析器,它将允许您修改结果对象并写出一个新的JSON字符串?这比试图使用正则表达式解决这个问题要容易得多。@Nick问题是,这是一个来自RESTAPI的巨大JSON响应,需要在内存中序列化。我已经使用了一个JSON解析器,但速度不够快(或者可能我做得不好?),所以我想在事实发生之前“规范化”它。我看到问题已经被关闭(并被否决)。没关系@维罗里诺的回答对我很有帮助。但我尝试过各种正则表达式模式,但都没有用。我使用了regexr.com和其他助手来解决这个问题。因此,建议的答案(通用正则表达式参考)没有帮助。。有些人有知识(并且已经尝试过),但他们不是专家,需要更多的经验来解决具有挑战性的问题。你们可能都走过了同样的道路,成为正则表达式大师。这就是为什么和其他SE论坛不同,我很少在上面发表文章。这是一个令人沮丧的地方。我已经编码13年了。。