替换Java字符串中的特殊字符

替换Java字符串中的特殊字符,java,regex,Java,Regex,我想替换如下所示字符串中的所有特殊字符: String a="Test’‵" 我想换一个™ 和带破折号(-)的“-µ”。我尝试了以下方法: a=a.replaceAll("[’|‵]", "-"); 这将生成以下结果: 试验------ 而不是 试验-- 如何获得所需的结果?不要使用方括号,因为它表示要匹配(a)的一组单个字符 打字错误?使用()而不是[]。一个表示组,另一个表示只能匹配

我想替换如下所示字符串中的所有特殊字符:

String a="Test’‵"
    
我想换一个™ 和带破折号(-)的“-µ”。我尝试了以下方法:

a=a.replaceAll("[’|‵]", "-");
    
    
这将生成以下结果:

试验------

而不是

试验--


如何获得所需的结果?

不要使用方括号,因为它表示要匹配(a)的一组单个字符


打字错误?使用
而不是
[
]
。一个表示组,另一个表示只能匹配指定“范围”中单个字符的字符类。或者甚至不使用
(..)
,只需删除
[
]
。在使用regex执行任何操作之前,您必须首先解决编码问题(utf-8=>Windows-1252=正确的utf-8编码)。
a=a.replaceAll("’|‵", "-");