java - Freemarker:选择字符串中字符的最后一个实例

标签 java regex freemarker

所以我有一个字符串,类似于“first-second-third-100201”。我想选择最后一个 - 并将其替换为/。

如果我想替换第一个实例,我可以这样做

<#assign string = "first-second-third-100201 />
${string?replace("-","/","f"}

将“f”作为第一个参数传递给第三个参数。然而,Freemarker 似乎没有类似的“最后”内置功能来选择破折号的最后一个实例。

有人有使用正则表达式模拟此内置功能的经验或知道如何做到这一点吗?谢谢!

编辑:

所以这很丑陋,但在技术上是可行的。

<#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}

计算结果为第一-第二-第三/100201

还有其他人有更简单/更优雅的解决方案吗?

最佳答案

试试这个:

${string?replace("-"," ")?word_list?last}

关于java - Freemarker:选择字符串中字符的最后一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21867478/

相关文章:

javascript - 显示带有时区的 freemarker 格式时间

java - JAXBContextFactory hell - java.lang.ClassNotFoundException : com. ibm.xml.xlxp2.jaxb.JAXBContextFactory

Java将原始字节编码为图像简单图像格式/文件

Java:输入字段的正则表达式只有数字和逗号+空格字符

javascript - HipChat 机器人 JS 正则表达式

java - 如何使用 Freemarker 显示 List<Map<String,Object>> 数据?

javascript - 元素的内容必须由格式良好的字符数据或标记组成

java - JFileChooser 对话框,搞砸了

java - 如何使用Java执行Allure命令

javascript - 用于捕获最后一组括号的 JS 正则表达式(不包括嵌套)