1

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

#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 字符串方法都可用。

我在这里做错了什么?

4

1 回答 1

0

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

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

或者replaceFirst

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

于 2019-08-22T08:29:35.297 回答