我强烈建议您不要这样做。JSON不是此处明确指出的常规语言:https : //cstheory.stackexchange.com/questions/3987/is-
json-a-regular-language
引用以上文章:
例如,考虑一个由数组组成的数组:
[ [ [ 1, 2], [2, 3] ] , [ [ 3, 4], [ 4, 5] ] ]显然,您无法使用真正的正则表达式进行解析。
我建议将JSON转换为对象(JSON.parse),并实现find函数遍历该结构。
除此之外,您还可以查看Douglas
Crockford的json2.js解析方法的内容。也许经过更改的版本将允许您搜索JSON字符串并仅返回您要查找的特定对象,而无需将整个结构转换为对象。仅当您从不从JSON检索任何其他数据时才有用。如果这样做的话,您可能也已经将整个事情从一开始就进行了转换。
编辑
为了进一步展示正则表达式是如何分解的,下面是一个正则表达式,它试图解析JSON
如果将其插入http://regexpal.com/,并选中“全部匹配”。您会发现它可以很好地匹配某些元素,例如:
正则表达式
"Comments"[ :]+((?=[)[[^]]*]|(?={){[^}]*}|"[^"]*")JSON匹配
"Comments": [ { "User":"Fairy God Mother", "Comment": "Ha, can't say I didn't see it coming" } ]正则表达式
"Name"[ :]+((?=[)[[^]]*]|(?={){[^}]*}|"[^"]*")JSON匹配
"Name": "Humpty"
但是,一旦您开始查询具有嵌套数组的高级结构(例如“帖子”),就会发现您无法正确返回该结构,因为正则表达式没有上下文,其中“]”是指定的结尾结构体。
正则表达式
"Posts"[ :]+((?=[)[[^]]*]|(?={){[^}]*}|"[^"]*")JSON匹配
"Posts": [ { "Title": "How I fell", "Comments": [ { "User":"Fairy God Mother", "Comment": "Ha, can't say I didn't see it coming" } ]



