\r 和 \n 的区别

IT技术 javascript regex
2021-03-07 18:32:30

正则表达式中\r之间有什么区别\n

有人可以用一个例子来解释吗?

5个回答

\r是“回车”(CR,ASCII 字符 13),\n是“换行符”(LF,ASCII 字符 10)。过去,每行末尾有两个 ASCII 字符来告诉打印机该做什么——CR 会告诉打印机返回到纸张的左边缘,LF 会前进到下一行。

操作系统对于行尾的外观仍然有不同的约定——有些是\n\r,有些是\n,有些是\r\n

在 Javascript 中,您主要处理\n- 这就是字符串通常切换到下一行的方式。但是,根据您使用的字符串,您也可能会遇到\r你到底在做什么?

我不知道任何指定\n\r为换行功能的平台或协议OS X 之前的 MAC OS 上的本机行分隔符是\r单独的。
2021-05-02 18:32:30
@bzim:您的意思是您知道使用\n\r( LFCR, 0x0A 0x0D) 作为行分隔符的系统?一定要告诉!
2021-05-03 18:32:30
此答案已添加到“转义序列”下Stack Overflow 正则表达式常见问题解答中
2021-05-06 18:32:30
@Alan 如果你想让我们告诉你,就问吧。:)
2021-05-14 18:32:30

通常\r表示回车符 (ASCII 0x0d),并且\n是换行符 (ASCII 0x0a)。 此页面包含所有特殊字符的列表,为了完整起见,此处引用:

  • \f 匹配换页。
  • \r 匹配回车。
  • \n 匹配换行符。
  • \t 匹配水平制表符。
  • \v 匹配垂直制表符。
  • \0匹配NUL字符。
  • [\b] 匹配退格。
  • \s匹配空格( 的缩写[\f\n\r\t\v\u00A0\u2028\u2029])。
  • \S匹配除空格( 的缩写[^\f\n\r\t\v\u00A0\u2028\u2029])以外的任何内容
  • \w匹配任何字母数字字符(单词字符),包括下划线( 的缩写[a-zA-Z0-9_])。
  • \W匹配任何非单词字符( 的缩写[^a-zA-Z0-9_])。
  • \d匹配任何数字( 的缩写[0-9])。
  • \D匹配任何非数字( 的缩写[^0-9])。
  • \b 匹配单词边界(单词和空格之间的位置)。
  • \B匹配非单词边界( 的缩写[^\b])。
  • \cX匹配一个控制字符。例如:\cm匹配control-M
  • \xhh匹配具有两个十六进制代码字符的字符hh
  • \uhhhh将 Unicode 字符与四个十六进制代码字符匹配hhhh
想想一个旧的手动打字机......回车将当前的“位置”移回行的开头。
2021-05-08 18:32:30
@Avinash,@nonnb 是正确的——回车和换行是纸终端时代的术语;回车符将打印头移回第 0 列,换行使纸卷前进一行。
2021-05-16 18:32:30
\0不属于那里。\{number}只是一个八进制转义序列。
2021-05-19 18:32:30

\n 是换行

\r 是回车

例如,在 Windows 中,行结尾是\r\n. 在绝大多数其他操作系统中,它们是\n.

不完全正确。例如,OS 9 有 \r\n,IIRC。
2021-04-22 18:32:30
而从前的一个 Mac OS 刚刚使用\r,IIRC。
2021-05-20 18:32:30

\r并且\n是您在打字机上前进到下一行的方式的数字表示。\r是一个回车\n是一个新行(也称为换行)。在打字机上,要转到新行的开头,您需要将笔架返回到最左边的位置,然后将纸张向上送入一行。

Unix 用于\n表示换行,OS9 之前的 Mac 使用\r,Windows 使用\r\n.

\n --> 换新行

\r --> 对于回车