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 分享