使用Java从多行字符串中删除空行

mso*_*mer 5 java testing groovy automation jmeter

我有一个多行字符串,其他行之间有一些空行。看起来像:

def msg = """
                AAAAAA

                BBBBBB


                CCCCCC

                DDDDDD







                EEEEEE
                TEST
                FFFFF


                GGGGGG
"""
Run Code Online (Sandbox Code Playgroud)

我尝试了一些正则表达式:

msg = msg.replaceAll('(\n\\\\s+\n)+', '')
Run Code Online (Sandbox Code Playgroud)

要么

msg = msg.replaceAll('(\r?\n){2,}', '$1');
Run Code Online (Sandbox Code Playgroud)

但是我的期待没有什么好处...

是否可以仅删除空行?得到这样的东西:

def msg = """
                    AAAAAA
                    BBBBBB
                    CCCCCC
                    DDDDDD
                    EEEEEE
                    TEST
                    FFFFF
                    GGGGGG

"""
Run Code Online (Sandbox Code Playgroud)

use*_*900 6

使用正则表达式(?m)^[ \t]*\r?\n"删除空行:

log.info msg.replaceAll("(?m)^[ \t]*\r?\n", "");
Run Code Online (Sandbox Code Playgroud)

要仅保留 1 行,请使用[\\\r\\\n]+

log.info text.replaceAll("[\\\r\\\n]+", "");
Run Code Online (Sandbox Code Playgroud)

如果您想稍后使用该值,则将其赋值

text = text.replaceAll("[\\\r\\\n]+", "");
Run Code Online (Sandbox Code Playgroud)