你的问题这有趣,我仔细看了。得到下面结果: 在替换字符串中使用反斜线 (\) 和美元符号 ($) 可能导致与作为字面值替换字符串时所产生的结果不同。美元符号可视为到如上所述已捕获子序列的引用,反斜线可用于转义替换字符串中的字面值字符。 最后想要达到你想要的效果:- public class eternal { public static void main(String[] args) { String str1 = "12312312111111344124qqwer"; replaceFun(str1,"(.)\\1+","\\$");//将叠词替换成$符号 } public static void replaceFun(String s,String regex,String ns){ s=s.replaceAll(regex, ns); System.out.println(s); } }
复制代码 |