在匹配某些特定字符(例如换行符)时,您可以使用正则表达式"\\n"或者直接使用"\n"。例如,以下代码将一个字符串拆分为多个行的数组:
String[] lines = allContent.split("\\r?\\n");
但是以下方式同样有效:
String[] lines = allContent.split("\r?\n");
我的问题:
上述两种方法是否完全相同,还是存在微小差异?如果有后者,请举例说明在哪些情况下会得到不同的结果。
或者仅在[可能/理论]性能方面有区别吗?
\\n
匹配 LF,\n
也匹配 LF。 - Wiktor Stribiżew(?x)
,那么在 Java 正则表达式中应该转义空格字符。即使它们用在字符类中也是如此。 - Wiktor Stribiżew\\r
代表两个字符:\
和r
,这在RegEx引擎中被解释为CR(回车)字符。另一方面,\r
代表Java中的CR,并且直接传递给RegEx引擎。 - Usagi Miyamoto