Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 正则表达式查找字符串并返回大括号之间的所有内容_Javascript_Regex_Curly Braces - Fatal编程技术网

Javascript 正则表达式查找字符串并返回大括号之间的所有内容

Javascript 正则表达式查找字符串并返回大括号之间的所有内容,javascript,regex,curly-braces,Javascript,Regex,Curly Braces,我一直在尝试使用另一位SO用户建议的方法: 但是没有运气。基本上,我有一个大的JSON对象,我使用JSON.stringify()将其转换为字符串,以便对其执行regexp模式。我的想法是返回{}之间的所有内容,如果我的搜索词“soccer”位于花括号之间的任何位置 我的数据可能如下所示: { { User: "Peter", Hobbies: "Soccer, Football, ...", more... }, { User: "Simon",

我一直在尝试使用另一位SO用户建议的方法:

但是没有运气。基本上,我有一个大的JSON对象,我使用
JSON.stringify()
将其转换为字符串,以便对其执行regexp模式。我的想法是返回
{}
之间的所有内容,如果我的搜索词“soccer”位于花括号之间的任何位置

我的数据可能如下所示:

{
  {
    User: "Peter",
    Hobbies: "Soccer, Football, ...",
    more...
  },
  {
    User: "Simon",
    Hobbies: "Pingpong, Soccer, Badminton",
    more...
  }
}
\{[^{]+soccer[^}]+}

因此,如果我在我的字符串化JSON对象中搜索“soccer”,我希望返回用户的全部信息。我该怎么做呢?

并不是说对JSON对象进行字符串化以在其上应用正则表达式没有意义(不寒而栗),而是说,这是您的CPU。。。您可以使用以下内容:

{
  {
    User: "Peter",
    Hobbies: "Soccer, Football, ...",
    more...
  },
  {
    User: "Simon",
    Hobbies: "Pingpong, Soccer, Badminton",
    more...
  }
}
\{[^{]+soccer[^}]+}

这应该能抓住你要找的东西。但是正在使用正则表达式分析JSON。。。非诺诺…

并不是说字符串化JSON对象以在其上应用正则表达式没有意义(不寒而栗),而是,这是您的CPU。。。您可以使用以下内容:

{
  {
    User: "Peter",
    Hobbies: "Soccer, Football, ...",
    more...
  },
  {
    User: "Simon",
    Hobbies: "Pingpong, Soccer, Badminton",
    more...
  }
}
\{[^{]+soccer[^}]+}

这应该能抓住你要找的东西。但是正在使用正则表达式分析JSON。。。非诺诺…

类似于“{[^}]*(S|S)occer[^}]*}”

类似于“{[^}]*(S|S)occer[^}]*}”

您可以从中获得灵感(而无需将json转换为字符串):

var myData=[
{
用户:“彼得”,
爱好:“足球,足球,…”
},
{
用户:“西蒙”,
爱好:“乒乓球、足球、羽毛球”
}
];
var结果=”;
对于(var i=0;i
您可以从中获得启发(无需将json转换为字符串):

var myData=[
{
用户:“彼得”,
爱好:“足球,足球,…”
},
{
用户:“西蒙”,
爱好:“乒乓球、足球、羽毛球”
}
];
var结果=”;
对于(var i=0;i
您字符串化了一个对象,只是为了使用正则表达式搜索其中的内容?您的JSON对象是否太大,以至于根据它的字符串表示进行搜索会更快?您的JSON无效,对象缺少属性名。@madfriend umm,这会更慢。您字符串化了一个对象,只是为了可以使用正则表达式搜索其中的内容?您的JSON对象是否太大,以至于根据它的字符串表示进行搜索会更快?您的JSON无效,对象缺少属性名。@madfriend umm,这会更慢。我也不太满意这种方法,但它似乎是我能想到的唯一一种方法,因为我的JSON是动态的,深度可变(也就是说我可能有data.cat1.subcat2.items[]和data.cat2.items[]),我想搜索所有cat/subcats中的所有项目有更高性能的想法如何实现吗?@opfeffer不管你的JSON是什么,搜索它的对象总是更容易、更快、更少出错representation@opfeffer你能发布一个JSON的示例吗?可能只有几个元素,有子元素和子元素?我也不太喜欢这种方法,但它似乎是我能想到的唯一一个,因为我的JSON是动态的,深度可变(也就是说我可能有data.cat1.subcat2.items[]和data.cat2.items[]),我想搜索所有cat/subcats中的所有项目有更高性能的想法如何实现吗?@opfeffer不管你的JSON是什么,搜索它的对象总是更容易、更快、更少出错representation@opfeffer你能发布一个JSON的示例吗?也许只是几个元素,有子元素和子元素?