jq 负选择数组元素

Kon*_*ads 5 arrays json regex-negation jq

将数据集作为带有值的数组行,例如:

[“狗”、“猫”、“鸟”]

我想得到一个包含所有与正则表达式不匹配的值的数组,但不愿意使用负捕获组(正则表达式比这更复杂) - 所以如果我的标准是第一个字母必须是大写,输出数组应该是 ["cat"]

pea*_*eak 8

所有与正则表达式不匹配的值

听起来test(_) | not就是你要找的。假设您打算写“首字母不能大写”,则可以使用以下过滤器:

map(select(test("^[A-Z]")|not))
Run Code Online (Sandbox Code Playgroud)