在当前情况下没有区别。通常的字符串转义序列是在单个反斜杠的帮助下形成的,然后有效的转义字符(
"n",
"r"等)和 正则表达式转义序列 在
文字 反斜杠的帮助下形成(即Java字符串中的双反斜杠)。文字)和一个有效的正则表达式转义字符(
"\n",
"\d",等)。
"n"( 转义序列 )是文字LF(换行符),并且
"\n"是与LF符号匹配的正则表达式转义序列。
"r"( 转义序列 )是文字CR(回车),并且
"\r"是与CR符号匹配的正则表达式转义序列。
"t"( 转义序列 )是文字的制表符,
"\t"也是与制表符匹配的正则表达式转义序列。
有关 正则表达式 转义的受支持列表,请参见Java
regex文档中的列表。
__
但是,如果使用
Pattern.COMMENTS标志(用于引入注释并很好地格式化模式,使regex引擎忽略模式中所有未转义的空格),则需要在Java字符串文字中使用
"\n"或
"\n"定义换行符(LF)。和
"\r"或
"\r"定义回车(CR)。
查看Java测试:
String s = "n";System.out.println(s.replaceAll("n", "LF")); // => LFSystem.out.println(s.replaceAll("\n", "LF")); // => LFSystem.out.println(s.replaceAll("(?x)\n", "LF")); // => LFSystem.out.println(s.replaceAll("(?x)\n", "LF")); // => LFSystem.out.println(s.replaceAll("(?x)n", "<LF>")); // => <LF>//<LF>为什么最后一个产生
<LF>+ newline +
<LF>?因为
"(?x)n"等于
"",所以是一个空模式,它与换行符之前和之后的空格匹配。



