正则表达式匹配连续出现的两个反斜杠?

时间:2016-01-23 19:51:32

标签: java regex

我必须在'\''\'中将所有'\'替换为String。我知道正则表达式"\\\\"表示\但是如何编写replaceAll()的正则表达式以匹配'\''\'。我试过了:

 .replaceAll("\\\\\\\\", "\\") 

但是我得到了java.util.regex.PatternSyntaxException?

1 个答案:

答案 0 :(得分:3)

如果要替换文字而不是replaceAll,请使用不使用正则表达式语法的replace方法:

replace("\\\\", "\\")

如果你绝对必须使用replaceAll,请记住它的第二个参数也有一些特殊字符

  • $(其中$x表示来自群组x的匹配)
  • \以逃避$及其自身,

所以使用replaceAll的代码需要看起来像:

replaceAll("\\\\\\\\", "\\\\")

因为我们还需要两次转义\(一次在正则表达式引擎\\中,一次在字符串\\\\中)。