我有个愚蠢的想法将"="替换成":",用LitJson来转成JsonData,然后分别将第一层重新转为json字符拼接起来,将":"替换成"="

解决方案 »

  1.   

    用平衡组应该这么写:\w+=(?:{((?<o>{)|(?<-o>)}|[^{}]+)*(?(o)(?!))}|"\w+")
      

  2.   

    @督察,这个应该不能单纯的不处理{}就使用用平衡组来解决楼主说明"字符串值 中包含 花括号的情况",并且举例"rer{fsd",并没说明{}会成对出现.因为是字符串,所以我们应该无法保证不会出现单个的{当然,楼主给的样本例子是可以用平衡组匹配,不过, @督察,可以试试一下的字串,只是去掉了字符串中的一个"}",你给出的正则会运行卡死...f_e={
        a="fe",
        b="ss",
        "ss",
        [1]=33,
        ss={a="s" ,b="ss" ,s={},e="ss"     }
    },
    aaaa="ss",
    fse={
        a={af=""},
        b={[34]=344},
        "ss",
        [1]=33,
        ss={a="s" ,b="ss" ,s={},
    fasdf="s"     }
    },
    ffe={
        a="f{e",
        b="ss",
        "ss",
        [1]=33,
        ss={a="s" ,b="ss" ,s={}     }
    }  建议楼主,在生成lua Table的时候,处理掉lua中Table 字串值中 "{}"替换掉,这样就完全可以使用平衡组处理了,并且可以少很多事