我正在使用Java并且具有如下所示的值的字符串,
String data = "vale-cx";
data = data.replaceAll("\-", "\-\");
我正在替换它内部的"-",但它不起作用。我正在寻找的最终值是"vale\-cx"。意思是,连字符需要转义。
连字符不需要转义,但需要在替换表达式中转义反斜杠,这意味着您需要在连字符之前多加两个反斜杠(之后不需要(:
data = data.replaceAll("-", "\\-");
更好的是,根本不要使用正则表达式:
data = data.replace("-", "\-");
尝试使用\\-
,例如:
String data = "vale-cx";
System.out.println(data.replaceAll("\-", "\\-"));
连字符仅在正则表达式中用于在字符类中创建范围时才是特殊的,例如[A-Z]
.你在这里没有这样做,所以你根本不需要任何逃脱。