Java正则表达式如何替换文本中连续的换行符和空格?

Java正则表达式如何替换文本中连续的换行符和空格?

Java正则表达式高效去除文本中多余换行符和空格

在Java开发中,处理文本时经常需要清理多余的换行符和空格。本文提供一种利用正则表达式的解决方案,有效地将连续的换行符(可能包含空格)替换为单个换行符。

问题:给定一段文本,例如: aaaaaa: bbbbbbb ccccc ,需要将其中的连续换行符(如 )和包含空格的连续换行符(如 )替换为单个换行符 ,得到结果: aaaaaa: bbbbbbb ccccc 。(去除首尾换行符并非本文核心目标)

之前的尝试: +s* * 未能达到预期效果。

立即学习Java免费学习笔记(深入)”;

解决方案:

以下Java代码使用正则表达式 s* + 有效地解决了这个问题:

import java.util.regex.Matcher; import java.util.regex.Pattern;  public class CleanText {     public static void main(String[] args) {         String input = " AAAAAA:   BBBBBBB     CCCCC   ";         Pattern pattern = Pattern.compile("ns*n+"); // 注意此处正则表达式的修改         Matcher matcher = pattern.matcher(input);         String output = matcher.replaceAll(" ");         System.out.println(output);     } }

代码解释:

  • ns*n+:这是改进后的正则表达式。

    • n:匹配一个换行符。
    • s*:匹配零个或多个空格字符。
    • n+:匹配一个或多个换行符。
  • matcher.replaceAll(” “):将所有匹配到的连续换行符(可能包含空格)替换为单个换行符。

Java字符串中需要使用双反斜杠来转义单个反斜杠,因为反斜杠在Java字符串和正则表达式中都有特殊含义。 该正则表达式能有效处理连续换行符,但首尾换行符的处理需要额外步骤。

© 版权声明
THE END
喜欢就支持一下吧
点赞15 分享