Java 使用正则表达式转义连字符"-"字符



我正在使用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].你在这里没有这样做,所以你根本不需要任何逃脱。

相关内容

最新更新