霍恩克是对的。我只想发表一些解释:
编译器完成后,“ \ n”转换为“ n”(因为您转义了反斜杠)。因此,正则表达式引擎会看到“ n”并考虑换行,并将其删除(而不是您拥有的文字“
n”)。
编译器将“ n”转换为实际的新行。因此,将新行字符发送到正则表达式引擎。
“ \\ n”很难看,但是正确。编译器会删除转义序列,因此正则表达式引擎会看到“ \
n”。正则表达式引擎会看到两个反斜杠,并且知道第一个反斜杠将其转义,因此可以转换为检查文字字符“ ”和“ n”,从而为您提供所需的结果。
Java很不错(这是我使用的语言),但是必须考虑基本上使用两次转义的正则表达式是一个真正的挑战。为了获得更多的乐趣,似乎喜欢尝试翻译反斜杠。



