给定以下输入:
{
"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") ]