带下划线的反斜杠IntelliJ

时间:2014-12-23 10:18:25

标签: java intellij-idea backslash

我正在使用反斜杠作为我正在处理的序列化格式的转义字符。我把它作为一个常数,但IntelliJ强调它并突出显示它是红色的。在悬停时,它不会提供任何错误消息或任何有关它不喜欢它的信息。

enter image description here

这是什么原因以及如何解决?

2 个答案:

答案 0 :(得分:4)

IntelliJ比我更聪明,并且意识到我在正则表达式中使用这个字符,其中需要2个反斜杠,但是,IntelliJ也认为我的小心思可以找到问题而不给我任何关于它的信息。 / p>

答案 1 :(得分:1)

如果它被用作正则表达式,那么" \" 必须转义

如果您正在逃避" \" as" \"与传统正则表达式一样,您还需要再添加两个\\,总共\\\\

这是因为Java解释" \":

的方式
  

在文字Java字符串中,反斜杠是一个转义字符。该   字符串" \"是一个反斜杠。在正则表达式中,   反斜杠也是一个转义字符。正则表达式   匹配单个反斜杠。这个正则表达式作为Java字符串,   成为" \\"。这是正确的:4个反斜杠匹配单个。

     

正则表达式\ w匹配单词字符。作为Java字符串,这是   写作" \ w"。

     

提供替换字符串时会出现相同的反斜杠   String.replaceAll()等方法作为Java中的文字Java字符串   码。在替换文本中,美元符号必须编码为\ $和   当你想用一个替换正则表达式匹配时,反斜杠为\   实际的美元符号或反斜杠。 但是,反斜杠也必须如此   在文字Java字符串中转义。所以一美元签到了   替换文字变为" \ $"当写为文字Java字符串时。   单个反斜杠变为" \\"。再说一次:4个反斜杠   插入一个。