1. 介绍
1.1. 概念
回车(Carriage Return)CR-将光标移动到当前行的开头。
CR使用'\r'符号表示, 十进制ASCII代码是13, 十六进制代码为0x0D
换行(Line Feed)LF-将光标“垂直”移动到下一行。
LF使用'\n'符号表示, 十进制ASCII代码是10, 十六进制代码为0x0A
不同的系统使用不同的符号组合
- Windows:结合使用回车和换行(
\r\n),因为Windows传统上借用了打字机时代的两个独立操作。 - Unix/Linux:只使用换行符(
\n),因为它的设计追求简洁和高效,所以只用了换行的功能。 - 早期Mac OS:只使用回车符(
\r),但从Mac OS X开始,Mac也改用了Unix的换行符(\n)。
影响
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
1.2. 背景
在早期的机械英文打字机,有一个部件叫 “字车”(carriage) ,每打一个字符,“字车”就前进一格。当打满一行字符后,打字者就得推动“字车”到起始位置,以便开始输入下一行,这个推动“字车”的动作叫 “回车”(carriage return)。同时要将纸张上移一行,滚筒上卷一行这就是换行(Line Feed)。
电动打字机时代,回车操作变成了一个单独的回车键(Carriage Return key),按下回车键(CR)会使纸张归位,许多早期的电动打字机也增加了一个“换行”功能,回车键就变成了有两个操作的功能。
2. 使用场景
2.1. 排版显示
在work和notepad中,可以显示格式符用于排版
notepad在视图中配置

word的段落的-><-|

或者在选项配置

2.2. print控制console输出log换行
代码debug log用导的printf打印时基本都会用到 \n 和 \r 之类控制字符
2.3. 正则表达式搜索
\r和\n在正则可以搜索匹配,进而可以搜索特定文本,或者替换来改变文本段落的布局
比如
正则表达式 - 夜owl - 博客园
3.2 特定行数增加新行(捕获引用运用)
类似上面的,但是需要识别特定行数,不如数字结尾的行数才需要增加新行
正则表达式:
-
搜索:
(\d)(\r) -
替换:
\1\r\n -
解释:
-
(\d):匹配数字(行号),并将其作为一个捕获组。 -
(\r):匹配回车符,作为第二个捕获组。 -
\1\r\n:在替换时,\1保留原来的数字,\r\n将回车符替换为回车换行符。
3. 参考
回车(CR)与换行(LF), '\r'和'\n'的区别-腾讯云开发者社区-腾讯云
地道英语 | 为什么Enter键翻译为回车?跟carriage又有啥关系?
很少人真正了解 \n 和 \r 有什么区别!-腾讯云开发者社区-腾讯云
浙公网安备 33010602011771号