删除所有空行

2022-09-01 00:48:11

我认为这并不难做到,但我想用String.replaceAll删除所有空行(或Java中仅包含空格和选项卡的行)。

我的正则表达式看起来像这样:

s = s.replaceAll ("^[ |\t]*\n$", "");

但它不起作用。

我环顾四周,但只找到了用于删除没有空白或选项卡的空行的正则表达式。


答案 1

试试这个:

String text = "line 1\n\nline 3\n\n\nline 5";
String adjusted = text.replaceAll("(?m)^[ \t]*\r?\n", "");
// ...

请注意,正则表达式匹配空格、制表符或管道字符![ |\t]

编辑

B.t.w.,正则表达式也可以做到这一点。(?m)^\s+$


答案 2

我不知道Java中正则表达式的语法,但它是你正在寻找的正则表达式。/^\s*$[\n\r]{1,}/gm

你可能在Java中这样写:

s = s.replaceAll("(?m)^\\s*$[\n\r]{1,}", "");

我用JavaScript测试了它,它工作正常。