Javascript mongodb/jsonpath/jmespath表达式,用于筛选具有包含特殊字符或重音字符的属性的对象
我需要过滤这个json中包含特殊字符的对象。(我可以编写javascript,也可以在mongo中导入和查询数据。) 预期产量Javascript mongodb/jsonpath/jmespath表达式,用于筛选具有包含特殊字符或重音字符的属性的对象,javascript,json,mongodb,jsonpath,jmespath,Javascript,Json,Mongodb,Jsonpath,Jmespath,我需要过滤这个json中包含特殊字符的对象。(我可以编写javascript,也可以在mongo中导入和查询数据。) 预期产量 { "Detail": [ { "name": "somename2", "text": "Sometext!" }, { "name
{
"Detail": [
{
"name": "somename2",
"text": "Sometext!"
},
{
"name": "somename3",
"text": "método"
}
]
}
有没有办法在jsonpath或jmspath中使用正则表达式来实现这一点
我尝试了各种方法来接近我所需要的东西,比如这些,但我在这一点上受阻了
Detail[].text.contains(`é`) in jmespath
$.[?(@.text=~ ^[a-zA-Z0-9]*$].text in jsonpath
db.test.find({'Detail.text': /[a-zA-Z0-9]*$]/}) in mongodb where 'test' is the collection
我想你应该试试这个工具 我在网上试过了 在这张图片中,您可以看到输出 这是我使用的正则表达式
.Detail[?(@.text =~ /(?:^\W+\w*$)|(?:^\w+\W+$)|(?:^\w+\W+\w+$)/)]
我把这个问题分成三组
顺便说一句,这是基于这个答案的。这有帮助吗:谢谢@Joe,这有助于构建字符类,但我仍然无法理解在中使用正则表达式只过滤具有特殊字符属性的对象的语法。非常感谢。我无法理解语法,但这很有帮助。
.Detail[?(@.text =~ /(?:^\W+\w*$)|(?:^\w+\W+$)|(?:^\w+\W+\w+$)/)]