字符串格式:"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,:匹配文件名 + 後綴逗號"" 即刪除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