freemarker 模板:将大字符串拆分为 n 大小的块

freemarker templates: split large string in n-size chunks

我想在 freemarker 模板中将一个长字符串拆分为 N 大小的块。

如何使用 freemarker 工具做到这一点?

示例:
字符串 - "1234567890"
块大小 - 3
结果 - ["123", "456", "789", "0"]

这可以通过正则表达式来完成,使用 matches built-in(参见 https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_matches):

<#list someString?matches('.{1,3}', 's') as chunk>
- ${chunk}
</#list>

我在这里列出了这些块,当然你也可以 <#assign chunks = someString?matches('.{1,3}', 's')>

如果您经常需要,请将其放入 #function

's' 是 dot-all 标志(参见 https://freemarker.apache.org/docs/ref_builtins_string.html#ref_builtin_string_flags)。