求助一个java关于换行符\n的正则表达式替换问题?

大家好,我想做一个关于换行符\n的正则表达式替换

输入文本是这样的
\nAAAAAA: \n\nBBBBBBB \n \n\nCCCCC\n\n\n

需求是把连续的\n(比如\n\n),还有中间可能有空格的场景(比如\n \n\n),全部换成单个的\n符号
上面的文本,期望的效果是
\nAAAAAA: \nBBBBBBB \nCCCCC\n
当然如果有办法把首末的\n一起去掉更好,但这个属于锦上添花,不是核心需求

我自己试了会儿,我想的匹配模式是 \n+\s*\n* ,结果不行。又在网上搜了些文章看,反而越看越昏了。 有个问题,比如上面的文本,复制到编辑器里面会自动加上一个转义的\反斜杠吧,那在写正则时是不是要加反斜杠。 比如一个简单的\n+,我在有的文章看是写的\\\\n+,不太明白为啥要这么多反斜杠


回答:

import java.util.regex.Matcher;

import java.util.regex.Pattern;

public class ReplaceNewLine {

public static void main(String[] args) {

String input = "\nAAAAAA: \n\nBBBBBBB \n \n\nCCCCC\n\n\n";

Pattern pattern = Pattern.compile("\\n\\s*\\n");

Matcher matcher = pattern.matcher(input);

String output = matcher.replaceAll("\n");

System.out.println(output);

}

}


回答:

"\\n\\s*(\\n|$)|^\\s*\\n"替换成$1

以上是 求助一个java关于换行符\n的正则表达式替换问题? 的全部内容, 来源链接: utcz.com/p/945187.html

回到顶部