在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