[英]Remove empty line from a multi-line string with Java
我有一個多行字符串,其他行之間有一些空行。 看起來像:
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
"""
使用正則表達式(?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]+", "");
您當前的嘗試似乎非常正確,我認為您想要的邏輯是僅用一個換行符替換兩個或多個換行符:
output = msg.replaceAll("(\r?\n)(?:\r?\n){1,}", "$1");
捕獲實際使用的換行符類型(對於Linux為\\n
或對於Windows為\\r\\n
)的訣竅是先捕獲單個\\r?\\n
,然后再捕獲至少一個換行符。
時髦的高爾夫!
msg.split('\n')
.findAll { it.trim() }
.join('\n')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.