奇怪的行为 - 从DB获取的Java正则表达式

时间:2014-11-13 06:48:03

标签: java regex

我有正则表达式存储在DB - '\\\\E\\\\'中,我使用java来获取它并将其与字符串匹配。

我认为,因为java从DB读取它知道自己逃避SQL特殊字符,我所需要的只是转义正则表达式特殊字符,所以这个表达式实际匹配'\\E\\'

问题是,它是'\E\'而不是'\\E\\',为什么?

1 个答案:

答案 0 :(得分:2)

如果要使用正则表达式匹配一个文字反斜杠字符,则需要在Java字符串中使用四个反斜杠。

  • 正则表达式\\匹配一个字面反斜杠。
  • 字符串"\\"表示单个反斜杠。
  • 因此,为了构建一个由两个反斜杠组成的正则表达式,您需要一个带有四个反斜杠的Java字符串。

因此,您需要"\\\\\\\\E\\\\\\\\"来构建与\\E\\ ...

匹配的正则表达式