Java FTL将多个连续连字符替换为一个
我有一个字符串,看起来像这样:Java FTL将多个连续连字符替换为一个,java,freemarker,Java,Freemarker,我有一个字符串,看起来像这样: 某物-----另一物 我想用FTL的一个破折号替换多个破折号 因此,预期产出为: 另一件事 如果我们知道确切的连字符数,替换将起作用,但我不确定在我的情况下会有多少连字符。使用?替换('-+','-','r')。'r'表示它使用正则表达式,-+表示正则表达式中的一个或多个-字符。使用?替换('-+','-','r')。'r'表示它使用正则表达式,-+表示正则表达式中的一个或多个-字符 [#assign str = "a-b--c---d----e----
某物-----另一物
我想用FTL的一个破折号替换多个破折号
因此,预期产出为:
另一件事
如果我们知道确切的连字符数,替换将起作用,但我不确定在我的情况下会有多少连字符。使用?替换('-+','-','r')
。'r'
表示它使用正则表达式,-+
表示正则表达式中的一个或多个-
字符。使用?替换('-+','-','r')
。'r'
表示它使用正则表达式,-+
表示正则表达式中的一个或多个-
字符
[#assign str = "a-b--c---d----e-----f"]
[#function reduceHyphens text]
[#list 1..text?length as i]
[#if text?contains("--")]
[#local text = text?replace("--","-")]
[#else]
[#break]
[/#if]
[/#list]
[#return text]
[/#function]
${reduceHyphens(str)}
输出:a-b-c-d-e-f
输出:a-b-c-d-e-f