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號