如何使用"jq"中的"global"筛选器从"capture"



给定以下输入:

{
"text": "a1nb2"
}

如何获得以下输出:

[
{
"letter": "a",
"number": 1
},
{
"letter": "b",
"number": 2
}
]

我尝试过使用带有"g"标志的capture,但这会产生两个文档,而不是一个带有捕获输入数组的文档:

$ echo '{
"text": "a1\nb2"
}' | jq '.text | capture("(?<letter>[a-z])(?<number>[0-9])";"g")'
{
"letter": "a",
"number": "1"
}
{
"letter": "b",
"number": "2"
}

这里有一个指向jqplay示例的链接。

为什么不将capture封装在一个新数组中:

.text | [ capture("(?<letter>[a-z])(?<number>[0-9])";"g") ]

JqPlay

相关内容

最新更新