大括号之间的正则表达式搜索

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大括号之间的正则表达式搜索相关的知识,希望对你有一定的参考价值。

我有一个庞大的数组,超过40,000个项目 - 而不是循环每个项目,并检查每个属性,我想首先将大规模数组序列化为字符串。

然后编写一个简单的正则表达式来匹配对象中的两个属性。

在每个单个对象中,它们都以“aaa”键和“true”键开头。

可以遵循各种键值对,然后对象上的最后一个键值对是zzz: true

var data = JSON.stringify([{
    aaa: true,
    some: 'cat goes meow',
    zzz: true
},{
    aaa: true,
    some: 'dog goes woof',
    zzz: true
}]);

我基本上想要一个搜索词“dog”,并且有一个正则表达式将我从aaa返回到zzz,其中这些键之间的任何值与查询dog匹配,在上面的示例中我希望得到最后一项数组。

我尝试过的:https://regex101.com/r/yNSTs9/2

答案

我已将您的数组转换为字符串并尝试根据需要查找数据。

检查下面的正则表达式

regex - /([^}{])([^}{]*)(dog)([^}{]*)(})/g

var results = '[{"aaa":true,"some":"cat goes meow","zzz":true},{"aaa":true,"some":"dog goes woof","zzz":true}]'.match(/([^}{])([^}{]*)(dog)([^}{]*)(})/g);

console.log(results);
另一答案

尝试这种模式aaa.+(?=[^}]*dog[^}]*)[^}]+

说明:

aaa.+匹配aaa和至少一个任何角色,直到(?=[^}]*dog[^}]*),这意味着位置,在任何包含dog但不包含}的字符串之前,所以我们不跳到下一个对象(感谢[^}])。如果断言为真(正向前瞻匹配),则匹配所有内容,直到}[^}]+

Demo

以上是关于大括号之间的正则表达式搜索的主要内容,如果未能解决你的问题,请参考以下文章

notepad++正则表达式删除大括号之间的所有文本

正则表达式提取大括号之间的数据并加载到 AMQ

正则表达式在非常大的html文件中匹配java中的花括号[重复]

正则表达式 RegExp 对象

asp.net 使用正则表达式验证包含打开/关闭括号片段的属性字符串

正则表达式知识补漏