String str ="abc|efa|abc|efa|abc"; String str1 = str.replaceAll("(?s)(.)(?=.*\1)", ""); System.out.println(str1);
其中:("(?s)(.)(?=.*\1)解释如下; (?s) 开启单行模式 DOTALL 让. 号匹配任意字符 (.) 任意字符 并捕获在第一组 (?=.*1) 这是断言, 表示后面内容将是 任意个字符加上第一组所捕获的内容