是否可以在 VTL 解析器中执行基于正则表达式的字符串替换?



我想定义一个响应映射模板,如下所示:

#set( $postIds = [] )
#foreach( $item in $ctx.result.items )
#if( !$util.isNull($item))
$util.qr($postIds.add($item.SK.replace("^([0-9]){1,}-", "")))
#end
#end
{
"items": $utils.toJson($postIds),
#if( ${context.result.nextToken} )
"nextToken": "${context.result.nextToken}",
#end
}

目标是删除每个项目的 SK 属性开头的时间戳,后跟"-"字符。

我检查了正则表达式是否正确,但这似乎不起作用,因为开头的数字没有被删除。

也尝试过...replace(/^([0-9]){1,}-/", "").

如果我记得相关,文档在某处说所有 Java 字符串方法都可用。

我在这里做错了什么?

要替换正则表达式,请使用 替换所有

用给定的替换此字符串中与给定正则表达式匹配的每个子字符串。

或者replaceFirst

确保SK是字符串或使用toString()

相关内容

  • 没有找到相关文章

最新更新