Java自己进行字符串解析,将其从代码转换为内存中的内部字符串,然后将字符串发送到正则表达式解析器.
Java将2个字符\n转换为换行符(ASCII码0x0A),将前2个(!)字符\\s转换为单个反斜杠:\s.现在,此字符串被发送到正则表达式解析器,并且由于正则表达式识别它们自己的特殊转义字符,因此它将\s"任何空格"视为"任何空格".
此时,代码\n已存储为单个字符"linefeed",而正则表达式不会再次处理它.
由于正则表达式也将该集合识别\n为"换行",因此您也可以\\n在Java字符串中使用 - Java将转义\\转换为单个\,然后正则表达式模块将找到\n(再次)转换为换行符.