我有一個(gè)多行字符串和其他行之間的一些空行??雌饋?lái)像:def msg = """ AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE TEST FFFFF GGGGGG"""我嘗試了一些正則表達(dá)式:msg = msg.replaceAll('(\n\\\\s+\n)+', '')或者msg = msg.replaceAll('(\r?\n){2,}', '$1');但是我正在尋找的東西沒(méi)有什么好處......是否可以只刪除空行?得到這樣的東西:def msg = """ AAAAAA BBBBBB CCCCCC DDDDDD EEEEEE TEST FFFFF GGGGGG"""
3 回答

狐的傳說(shuō)
TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊
使用正則表達(dá)式(?m)^[ \t]*\r?\n"
刪除空行:
log.info msg.replaceAll("(?m)^[ \t]*\r?\n", "");
要僅保留 1 行,請(qǐng)使用[\\\r\\\n]+
:
log.info text.replaceAll("[\\\r\\\n]+", "");
如果以后要使用該值,則對(duì)其進(jìn)行賦值
text = text.replaceAll("[\\\r\\\n]+", "");

飲歌長(zhǎng)嘯
TA貢獻(xiàn)1951條經(jīng)驗(yàn) 獲得超3個(gè)贊
絕妙的高爾夫!
msg.split('\n') .findAll { it.trim() } .join('\n')

犯罪嫌疑人X
TA貢獻(xiàn)2080條經(jīng)驗(yàn) 獲得超4個(gè)贊
您當(dāng)前的嘗試似乎非常正確,我認(rèn)為您想要的邏輯是用一個(gè)換行符替換兩個(gè)或多個(gè)換行符:
output = msg.replaceAll("(\r?\n)(?:\r?\n){1,}", "$1");
這里的技巧是捕獲正在使用的實(shí)際換行符類(lèi)型(\n
對(duì)于 Linux 或\r\n
Windows),是\r?\n
先捕獲一個(gè),然后再捕獲至少一個(gè)換行符。
添加回答
舉報(bào)
0/150
提交
取消