轉義字符
轉義字符允許你在 Markdown 中顯示原本具有特殊含義的字符。通過在字符前添加反斜槓 \
,可以取消其特殊功能。
基本轉義概念
什麼是轉義
在 Markdown 中,某些字符具有特殊含義(如 *
用於強調),當你想要顯示這些字符本身時,需要使用轉義。
這是 *斜體* 文本。
這是 \*普通星號\* 文本。
渲染效果:
這是 斜體 文本。 這是 *普通星號* 文本。
需要轉義的字符
完整列表
以下字符在 Markdown 中具有特殊含義,需要轉義:
字符 | 描述 | 轉義語法 | 用途 |
---|---|---|---|
\ | 反斜槓 | \\ | 轉義字符 |
` | 反引號 | \` | 行內代碼 |
* | 星號 | \* | 強調、列表 |
_ | 下劃線 | \_ | 強調 |
{} | 花括號 | \{ \} | 擴展語法 |
[] | 方括號 | \[ \] | 鏈接、圖片 |
() | 圓括號 | \( \) | 鏈接、圖片 |
# | 井號 | \# | 標題 |
+ | 加號 | \+ | 列表 |
- | 減號 | \- | 列表、分隔線 |
. | 句點 | \. | 有序列表 |
! | 感嘆號 | \! | 圖片 |
常用轉義示例
星號和下劃線
❌ 不轉義:
這個文件名是 file_name_v2.txt
這個公式是 2*3*4 = 24
✅ 轉義:
這個文件名是 file\_name\_v2.txt
這個公式是 2\*3\*4 = 24
渲染效果:
❌ 不轉義: 這個文件名是 file_name_v2.txt 這個公式是 234 = 24
✅ 轉義: 這個文件名是 file_name_v2.txt 這個公式是 2*3*4 = 24
井號標題
❌ 不轉義:
# TODO: 完成任務
✅ 轉義:
\# TODO: 完成任務
渲染效果:
❌ 不轉義:
TODO: 完成任務
✅ 轉義: # TODO: 完成任務
列表符號
❌ 不轉義:
價格: 100 - 200 元
步驟: 1. 准備 2. 執行
✅ 轉義:
價格: 100 \- 200 元
步驟: 1\. 准備 2\. 執行
渲染效果:
❌ 不轉義: 價格: 100 - 200 元 步驟: 1. 准備 2. 執行
✅ 轉義: 價格: 100 - 200 元 步驟: 1. 准備 2. 執行
鏈接語法
❌ 不轉義:
查看文檔 [這裡](http://example.com)
✅ 轉義(顯示原始語法):
查看文檔 \[這裡\]\(http://example.com\)
渲染效果:
❌ 不轉義: 查看文檔 這裡
✅ 轉義(顯示原始語法): 查看文檔 [這裡](http://example.com)
特殊情況處理
反斜槓本身
要顯示反斜槓字符,需要使用雙反斜槓:
文件路徑: C:\\Users\\Username\\Documents
Unix路徑: /home/user/documents
渲染效果:
文件路徑: C:\Users\Username\Documents Unix路徑: /home/user/documents
反引號轉義
在代碼中顯示反引號:
使用 `` \` `` 包圍代碼
使用 ``` \`\`\` ``` 創建代碼塊
渲染效果:
使用 \`
包圍代碼 使用 \`\`\`
創建代碼塊
行尾反斜槓
反斜槓在行尾有特殊含義(強制換行):
第一行\
第二行(強制換行)
第一行\\
第二行(顯示反斜槓)
渲染效果:
第一行
第二行(強制換行)
第一行\ 第二行(顯示反斜槓)
代碼中的轉義
行內代碼
在行內代碼中,大多數字符不需要轉義:
代碼: `let result = 2 * 3 + 1;`
路徑: `C:\Users\*\Documents`
渲染效果:
代碼: let result = 2 * 3 + 1;
路徑: C:\Users\*\Documents
代碼塊
在代碼塊中,字符保持原樣:
```javascript
// 這些符號不需要轉義
const pattern = /[.*+?^${}()|[\]\\]/g;
const path = "C:\\Users\\*\\Documents";
```
渲染效果:
// 這些符號不需要轉義
const pattern = /[.*+?^${}()|[\]\\]/g;
const path = "C:\\Users\\*\\Documents";
實際應用場景
1. 技術文檔
## 配置文件語法
配置文件使用以下格式:
# 注釋行 key = value [section]
注意:
- 使用 \# 開始注釋
- 使用 \[\] 定義節
- 使用 \* 表示通配符
2. 數學表達式
## 數學公式
線性方程:y = a\*x + b
二次方程:y = a\*x² + b\*x + c
分數:1/2 = 0.5
注意:使用 \* 表示乘法運算符
3. 文件路徑
## 文件系統
Windows路徑:
- 系統目錄:C:\\Windows\\System32
- 用戶目錄:C:\\Users\\{username}
- 程序目錄:C:\\Program Files\\*
Linux路徑:
- 根目錄:/
- 用戶目錄:/home/{username}
- 通配符:/var/log/\*.log
4. 特殊符號說明
## 符號含義
在編程中:
- \* 通常表示指針或通配符
- \_ 用於命名約定(如 \_private)
- \# 用於注釋或預處理指令
- \[\] 表示數組或可選參數
- \{\} 表示代碼塊或佔位符
轉義的最佳實踐
1. 僅在需要時轉義
✅ 推薦:只轉義有歧義的字符
文件名: config.txt
價格: $10-20
❌ 不推薦:過度轉義
文件名: config\.txt
價格: \$10\-20
2. 保持一致性
✅ 推薦:統一的轉義風格
變量名: user\_id, item\_count, max\_size
❌ 不推薦:不一致的處理
變量名: user_id, item\_count, max_size
3. 使用代碼格式
當有大量特殊字符時,考慮使用代碼格式:
✅ 推薦:使用代碼格式
配置語法: `[section]` 和 `key=value`
❌ 不推薦:大量轉義
配置語法: \[section\] 和 key\=value
常見錯誤
1. 忘記轉義
❌ 錯誤:
我的GitHub用戶名是 user_name
這個函數叫 get_data()
✅ 正確:
我的GitHub用戶名是 user\_name
這個函數叫 get\_data()
2. 過度轉義
❌ 錯誤:
今天是 12\-25 號
這個文件是 README\.md
✅ 正確:
今天是 12-25 號
這個文件是 README.md
3. 上下文錯誤
❌ 錯誤:在代碼塊中轉義
let path = "C:\\Users\\Name"; ← 不需要雙重轉義
✅ 正確:
let path = "C:\Users\Name";
HTML 輸出
轉義字符的 HTML 輸出:
這是 \*星號\* 文本
轉換為:
<p>這是 *星號* 文本</p>
編輯器和工具
支持轉義預覽的編輯器
- Visual Studio Code: Markdown Preview Enhanced
- Typora: 實時預覽
- Mark Text: 所見即所得
- Obsidian: 實時渲染
轉義檢查工具
<!-- markdownlint 規則 -->
MD049: 強調標記一致性
MD050: 強調標記樣式
相關語法
練習
嘗試正確顯示以下內容:
- 文件路徑:
C:\Program Files\*\config.ini
- 變量名:
user_id
、file_name
、max_count
- 數學表達式:
2*x + 3*y = 15
- 配置語法:
[section]
和key=value
- Markdown 語法:
**粗體**
和*斜體*
參考表格
常用轉義速查
原字符 | 轉義後 | 說明 |
---|---|---|
\ | \\ | 反斜槓 |
* | \* | 星號 |
_ | \_ | 下劃線 |
# | \# | 井號 |
[ | \[ | 左方括號 |
] | \] | 右方括號 |
( | \( | 左圓括號 |
) | \) | 右圓括號 |
+ | \+ | 加號 |
- | \- | 減號/連字符 |
. | \. | 句點 |
! | \! | 感嘆號 |