【发布时间】:2020-07-16 03:36:36
【问题描述】:
我需要过滤此 json 中包含特殊字符的对象。 (我可以写一个javascript或者在mongo中导入和查询数据。)
{
"Detail": [{
"name": "somename1",
"text": "Sometext1"
},
{
"name": "somename2",
"text": "Sometext!"
}, {
"name": "somename3",
"text": "método"
}
]
}
预期输出
{
"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
【问题讨论】:
-
谢谢@Joe,这有助于构建字符类,但我仍然无法弄清楚使用正则表达式过滤仅具有特殊字符属性的对象的语法。
标签: javascript json mongodb jsonpath jmespath