首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 使用 replaceAll 正則刪除字符串中指定子串:逗號分隔列表實戰

     編輯:Java 相關知識

場景

字符串格式:"123.jpg,113.jpg,121.jpg,122.jpg,131.jpg",需刪除 113.jpg 及其前後逗號,保持列表格式完整。

核心代碼

public class StringRemoveDemo {
    public static void main(String[] args) {
        String s = "123.jpg,113.jpg,121.jpg,122.jpg,131.jpg";
        System.out.println("編譯前:" + s);
        // 正則:匹配 ",113.jpg" 或 "113.jpg,"
        String result = s.replaceAll(",113\\.jpg|113\\.jpg,", "");
        System.out.println("編譯後:" + result);
        // 輸出:123.jpg,121.jpg,122.jpg,131.jpg
    }
}

正則表達式解析

  • ,113\\.jpg:匹配前導逗號 + 文件名(點需轉義)
  • |:或關係
  • 113\\.jpg,:匹配文件名 + 後綴逗號
  • 替換為空串 "" 即刪除

replaceAll 簽名與原理

public String replaceAll(String regex, String replacement)
// 等同於
Pattern.compile(regex).matcher(str).replaceAll(replacement)

注意事項

  • 特殊字符(.、$、\ 等)需雙重轉義:Java 字符串轉義 + 正則轉義
  • 替換字符串中 $、\ 有特殊含義(組引用),需用 Matcher.quoteReplacement() 轉義
  • 大量替換建議預編譯 Pattern 復用

進階:通用刪除工具方法

public static String removeItem(String list, String item, String delimiter) {
    // 轉義分隔符與項目中的特殊字符
    String escDelim = Pattern.quote(delimiter);
    String escItem = Pattern.quote(item);
    // 構建正則:分隔符+項目 或 項目+分隔符
    String regex = escDelim + escItem + "|" + escItem + escDelim;
    return list.replaceAll(regex, "");
}
// 調用
String list = "a,b,c,d";
System.out.println(removeItem(list, "b", ",")); // a,c,d
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved