在JQ上应用正则表达式

pau*_*aul 7 regex bash jq

我正在使用jq获取json并获得一些值.

我有这个字符串

   "arn:aws:ecs:eu-west-1:foo:task/blablabla"
Run Code Online (Sandbox Code Playgroud)

我想从task /获取子字符串然后返回blablabla

现在我有这个正则表达式.

 (.*task?)\/(.*$)
Run Code Online (Sandbox Code Playgroud)

这给了我两组.

知道如何使用jq我可以应用这个正则表达式并得到第二组?

问候

小智 9

在 jq 1.5 上,您可以将正则表达式传递给match然后获取' 第二个元素的string属性captures

jq 'match("(.*task?)\/(.*$)").captures[1].string'
Run Code Online (Sandbox Code Playgroud)