如何在Markdown目录中自动移除三级标题
几种自动移除三级标题生成两级目录的方法
1. 正则表达式批量处理
大多数文本编辑器(VS Code、Sublime Text、Notepad++等)都支持正则查找替换,直接删掉所有三级标题:
- 打开查找替换功能,选择「正则表达式」模式
- 查找内容填
^###.*$(匹配所有以###开头的行) - 替换内容留空,点击「全部替换」即可清除所有三级标题
如果要直接提取一二级标题生成目录,可用正则提取:
- 查找内容填
^(#{1,2})\s*(.*)$ - 替换内容根据层级设置格式,比如一级标题用
$2,二级标题用$2,批量替换后就能得到符合要求的目录结构。
2. 编辑器插件一键生成
以VS Code为例,安装「Markdown All in One」插件后:
- 打开Markdown文件,按下
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac) - 搜索并执行「Create Table of Contents」命令
- 提前在插件设置里找到「Markdown All in One: Table of Contents Levels」,设置为
1-2,生成的目录就会自动过滤三级及以下标题。
3. 简单脚本批量生成
用Python写几行代码就能批量处理文件,示例代码如下:
# 读取目标Markdown文件 with open("你的文件路径.md", "r", encoding="utf-8") as f: content_lines = f.readlines() toc_content = [] for line in content_lines: trimmed_line = line.strip() # 匹配一级标题 if trimmed_line.startswith("# "): toc_content.append(trimmed_line[2:]) # 匹配二级标题 elif trimmed_line.startswith("## "): toc_content.append(f" {trimmed_line[3:]}") # 把生成的目录写入新文件 with open("生成的目录.md", "w", encoding="utf-8") as f: f.write("\n".join(toc_content))
内容的提问来源于stack exchange,提问作者Liza Shvachka
相关产品推荐
相关产品推荐

