大括号之间的正则表达式搜索
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
匹配,在上面的示例中我希望得到最后一项数组。
答案
我已将您的数组转换为字符串并尝试根据需要查找数据。
检查下面的正则表达式
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
但不包含}
的字符串之前,所以我们不跳到下一个对象(感谢[^}]
)。如果断言为真(正向前瞻匹配),则匹配所有内容,直到}
:[^}]+
。
以上是关于大括号之间的正则表达式搜索的主要内容,如果未能解决你的问题,请参考以下文章
正则表达式在非常大的html文件中匹配java中的花括号[重复]