用.replaceAll替换特殊字符

Wil*_*ill 2 java string escaping replaceall

您好我想在字符串中替换以下字符

String a = "20001=EDTS~^20002=USA~^20003=1170871875~^20004=1~^20005=0~^773=~^665=~^453=2~^448=0A";    
System.out.println(a);
String x  = a.replaceAll("~^", "");
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

但是我的输出是:

20001=EDTS~^20002=USA~^20003=1170871875~^20004=1~^20005=0~^773=~^665=~^453=2~^448=0A
20001=EDTS~^20002=USA~^20003=1170871875~^20004=1~^20005=0~^773=~^665=~^453=2~^448=0A
Run Code Online (Sandbox Code Playgroud)

显然有些事情发生了!

我用逃脱字符运行它:

 String x  = fix.replaceAll("\\~^", "\\");
Run Code Online (Sandbox Code Playgroud)

产量仍然相同.有什么东西与〜我不知道有关联吗?

我必须这样做:

〜!〜^

〜!

所有在同一个字符串中,我认为3 .replaceAll最长,然后是另外两个.然而,即使是最简单的工作,我也无法做到:S

编辑:由于某种原因被删除

Edit2:它应该用一个类似于[]的字符框替换〜^

wja*_*ans 5

据我所知,你根本不需要正则表达式?

如果不需要正则表达式,则可以使用replace而不是replaceAll替换所有出现的表达式,但它不会将第一个参数解释为正则表达式(请参阅String.replace)

String a = "20001=EDTS~^20002=USA~^20003=1170871875~^20004=1~^20005=0~^773=~^665=~^453=2~^448=0A";    
System.out.println(a);
String x  = a.replace("~^", "");
System.out.println(x);
Run Code Online (Sandbox Code Playgroud)

这将输出:

20001=EDTS~^20002=USA~^20003=1170871875~^20004=1~^20005=0~^773=~^665=~^453=2~^448=0A
20001=EDTS20002=USA20003=117087187520004=120005=0773=665=453=2448=0A
Run Code Online (Sandbox Code Playgroud)