这种情况下的正则表达式是什么?

时间:2015-07-01 19:16:39

标签: regex json

我希望从JSON返回的“House”表达式中获取“SuperHouse”值。 我试过了"House":"(.+?)",但它没有用。

    {
    type: "Benefits"
    members: [1]
    0:  {
    type: "Benefits2"
    House: {
    color: "red"
    name: "SuperHouse"
    Category: "big hoses"
           }
        }
   }

什么是正则表达式?

2 个答案:

答案 0 :(得分:0)

怎么样:

"House" : "?([^,]*)"?

但是再次使用解析器会让事情变得更容易

编辑:仅使用regexp无法解析通用json片段。这是因为正则表达式与DFA等效,但你需要一些“更强”的东西来计算任意数量的打开/关闭符号,更像是push down automata

答案 1 :(得分:0)

"House":"(.+?)"不起作用,因为House属性的值未被引号括起,并且值与:之间也有空格。这些是构造正则表达式以从JSON属性中获取值时必须考虑的所有事情。

如果您的JSON看起来像这样,而您需要做的就是这一次获得此特定值,您可以使用"House": (.*)

对于您正在使用的平台,您应该使用JSON解析器。许多语言/平台都内置了JSON解析器,包括JavaScript和PHP。其他像Java这样的热门库有GsonJackson

如果您需要在bash /命令行中执行此操作,我建议jsawk