【发布时间】:2014-03-19 00:22:26
【问题描述】:
所以我有一个字符串,例如“first-second-third-100201”。我想选择最后一个 - 并用 / 替换它。
如果我想替换第一个实例,我可以这样做
<#assign string = "first-second-third-100201 />
${string?replace("-","/","f"}
将“f”作为第一个参数作为第三个参数。但是,Freemarker 似乎没有类似的内置“last”来选择破折号的最后一个实例。
有没有人有任何使用正则表达式模拟这个内置的经验或知道如何这样做?谢谢!
编辑:
所以这很丑陋,但它在技术上是可行的。
<#assign first = "first-second-third-100201" >
<#assign last = first?last_index_of('-')>
<#assign last_replace = first?substring(0, last + 1) />
<#assign permalink_beg = first?substring(0, last) />
<#assign permalink_end = first?replace(last_replace, '/') >
${permalink_beg}${permalink_end}
计算为 first-second-third/100201
还有其他人有更简单/更优雅的解决方案吗?
【问题讨论】:
-
非常感谢大家!今天早上要试一试,会回来报告的。
标签: java regex freemarker