似乎 正在用单个空格(“”)替换换行符,而不是仅仅抑制它们。
Example:
<@compress single_line=true>
"First cell"
<#if something >
|"Second cell"
</#if>
|"Third cell"
</@compress>
正在打印:
"First cell" |"Second cell" |"Third cell"
由于管道之间的空间,遗留系统无法解析它。
有没有办法避免这种情况?也许有一种方法可以读取宏中的每个“嵌套”行来替代@compress的功能?
最后,我不需要“结构源代码”,而是演示代码,因此分配给变量以仅打印结果不会很好。
预先感谢您,亲切的问候。
感谢@ddekany 回答这个问题。接下来是简单的修剪代码:
- 前导空格 (^\s+)
- 尾随空格 (\s+$)
- 换行符 (\n|\r)
在多行模式下使用正则表达式(“rm”参数)
您只需删除表达式上的任何元素以满足您的需要,例如,如果您只想删除缩进,请不要使用 2 和 3 ;)
<#macro compress_single_line>
<#local captured><#nested></#local>
${ captured?replace("^\\s+|\\s+$|\\n|\\r", "", "rm") }
</#macro>
<@compress_single_line>
My free indented content
${ someVar }
</@compress_single_line>
希望这对@ddekany 的答案有所补充。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)