我正在尝试格式化多行文本字段以删除报表中的空白行。经过一些阅读后,我提出了以下正则表达式,但iReport编译器(不是最初声明的编辑器)将不接受这些作为有效,并且它会引发语法错误。我甚至关闭了吗?
$F{followups}.replace("/^\s*\n/gm", "")
或
$F{followups}.replace(/(\r\n|\n|\r)/gm,"")
编辑:根据要求,使用带引号的表达式(在报表编译期间实际抛出而不是编辑器)的错误消息是:
net.sf.jasperreports.engine.JRException:编制报表表达式类文件时遇到错误: org.codehaus.groovy.control.MultipleCompilationErrorsException:启动失败: calculator_Footprints_1385543094268_580318:218:意想不到字符: '\' @线218,柱80
答案 0 :(得分:0)
经过一番研究和反复试验后,我发现问题的根本原因是斜杠需要双引号('\'),如 sln 暗示的那样。另外,我最终使用了不同的语法:
$F{followups}.replaceAll("(?m)^[ \\t]*\\r?\\n", "")