转义字符
转义字符允许你在 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/\*.log4. 特殊符号说明
## 符号含义
在编程中:
- \* 通常表示指针或通配符
- \_ 用于命名约定(如 \_private)
- \# 用于注释或预处理指令
- \[\] 表示数组或可选参数
- \{\} 表示代码块或占位符转义的最佳实践
1. 仅在需要时转义
✅ 推荐:只转义有歧义的字符
文件名: config.txt
价格: $10-20
❌ 不推荐:过度转义
文件名: config\.txt
价格: \$10\-202. 保持一致性
✅ 推荐:统一的转义风格
变量名: user\_id, item\_count, max\_size
❌ 不推荐:不一致的处理
变量名: user_id, item\_count, max_size3. 使用代码格式
当有大量特殊字符时,考虑使用代码格式:
✅ 推荐:使用代码格式
配置语法: `[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.md3. 上下文错误
❌ 错误:在代码块中转义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 语法:
**粗体**和*斜体*
参考表格
常用转义速查
| 原字符 | 转义后 | 说明 |
|---|---|---|
\ | \\ | 反斜杠 |
* | \* | 星号 |
_ | \_ | 下划线 |
# | \# | 井号 |
[ | \[ | 左方括号 |
] | \] | 右方括号 |
( | \( | 左圆括号 |
) | \) | 右圆括号 |
+ | \+ | 加号 |
- | \- | 减号/连字符 |
. | \. | 句点 |
! | \! | 感叹号 |