从FTL中的URL获取子字符串

时间:2018-02-20 13:33:01

标签: freemarker

我有以下网址字符串/ level1 / level2 / level3 / _________________

现在我需要将子串到达3级,即/ level1 / level2 / level3。我怎样才能实现它?

谢谢,

3 个答案:

答案 0 :(得分:1)

可能有使用?substring?index_of的解决方案,但另一种解决方案会使用?split("/")。这会将字符串转换为您可以操作的序列。

<#assign URL = "level1/level2/level3/level4/file" />

<#assign seqURL = URL?split('/') />

${seqURL[0]+'/'+seqURL[1]+'/'+seqURL[2]}

执行此查找的另一种方法是将序列块化并加入第一个块。

${URL?split('/')?chunk(3)[0]?join("/")}

答案 1 :(得分:1)

假设它始终以Settings开头,您可以使用正则表达式执行此操作:

/

请注意,如果少于3个级别,或者正好是3级但第3级不以${u?matches(r'^((/[^/]+){0,3})', 'r')[0]} 结尾,则此功能也可以使用。

答案 2 :(得分:0)

使用freemarker内置函数index_ofsubstring并稍加帮助length

${URL?substring(0, URL?index_of("level1/level2/level3") + 1 + "level1/level2/level3"?length}