You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用JQ的test正则操作实现反向匹配筛选?

在jq中实现正则反向筛选

很简单!要选出不匹配指定正则模式的JSON数据项,只需要在test()的结果前加上取反运算符not,就能反转筛选逻辑。

完整示例演示

你的原始数据

[ {"genre": "progressive"}, {"genre": "a progressive 1"} ]

反向筛选的jq查询

map(select(.genre | test("^progressive$") | not))

最终输出结果

[ { "genre": "a progressive 1" } ]

额外写法参考

你也可以用括号把test()表达式包裹后再取反,逻辑完全一致,只是写法更清晰:

map(select( .genre | (test("^progressive$") | not) ))

核心逻辑就是对test()返回的布尔值(匹配时为true,不匹配时为false)取反,让select选中原本被排除的条目。

内容的提问来源于stack exchange,提问作者Nam Nguyen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:31:58