我有一个多行字符串和其他行之间的一些空行。看起来像:def msg = """ AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE TEST FFFFF GGGGGG"""我尝试了一些正则表达式:msg = msg.replaceAll('(\n\\\\s+\n)+', '')或者msg = msg.replaceAll('(\r?\n){2,}', '$1');但是我正在寻找的东西没有什么好处......是否可以只删除空行?得到这样的东西:def msg = """ AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE TEST FFFFF GGGGGG"""
3 回答
狐的传说
TA贡献1804条经验 获得超3个赞
使用正则表达式(?m)^[ \t]*\r?\n"
删除空行:
log.info msg.replaceAll("(?m)^[ \t]*\r?\n", "");
要仅保留 1 行,请使用[\\\r\\\n]+
:
log.info text.replaceAll("[\\\r\\\n]+", "");
如果以后要使用该值,则对其进行赋值
text = text.replaceAll("[\\\r\\\n]+", "");
犯罪嫌疑人X
TA贡献2080条经验 获得超4个赞
您当前的尝试似乎非常正确,我认为您想要的逻辑是用一个换行符替换两个或多个换行符:
output = msg.replaceAll("(\r?\n)(?:\r?\n){1,}", "$1");
这里的技巧是捕获正在使用的实际换行符类型(\n
对于 Linux 或\r\n
Windows),是\r?\n
先捕获一个,然后再捕获至少一个换行符。
添加回答
举报
0/150
提交
取消