You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Word中带缩进的标题转换为层级编号格式?

标题层级编号转换实现方法

以下是几种可靠的转换方案,适配任意深度的标题层级:

方案1:Python脚本(批量/深度适配首选)

通过代码动态识别层级并维护计数器,完全避免手动转换的遗漏问题。

def convert_to_numbered_titles(input_text):
    lines = input_text.strip().split('\n')
    counters = []
    result = []
    for line in lines:
        # 统计开头'-'数量确定层级
        level = line.count('-', 0, line.find(' '))
        # 调整计数器列表匹配当前层级
        while len(counters) < level:
            counters.append(0)
        while len(counters) > level:
            counters.pop()
        # 更新当前层级计数
        counters[-1] += 1
        # 拼接编号与标题文本
        number = '.'.join(map(str, counters))
        title = line.strip().lstrip('-').strip()
        result.append(f"{number} {title}")
    return '\n'.join(result)

# 替换为你的标题内容即可运行
input_content = """- title1
-- title1-1
-- title1-2
--- title1-2-1
--- title1-2-2
- title2
-- title2-1
-- title2-2
- title3
- title4"""

print(convert_to_numbered_titles(input_content))

方案2:VS Code正则替换(快速手动处理)

适合少量内容的即时转换,按以下步骤操作:

  1. 粘贴标题文本到VS Code,按Ctrl+H打开替换面板,勾选「正则表达式」
  2. 标记层级:
    • 查找:^(---*) (.*)$
    • 替换:$1|$2
  3. 从最深层级往浅处理:
    • 处理3层标题:查找^(--) (\d+\.\d+) \|(.*)$,替换为$1 $2.$COUNTER $3,重置计数器为1后点击「替换全部」
    • 处理2层标题:查找^(-) (\d+) \|(.*)$,替换为$1 $1.$COUNTER $3,重置计数器为1后替换全部
    • 处理1层标题:查找^(-) \|(.*)$,替换为$COUNTER $2,重置计数器为1后替换全部
  4. 清理残留符号:查找^-+ ,替换为空

方案3:Excel辅助处理

  1. 将标题粘贴至Excel A列
  2. B列计算层级:=LEN(LEFT(A1,FIND(" ",A1)-1)),下拉填充
  3. C列生成编号:
    • C1输入1
    • C2输入公式:=IF(B2=B1,C1+1,IF(B2>B1,C1&".1",LEFT(C1,FIND(".",C1)-1)+1)),下拉填充
  4. D列拼接结果:=C1&" "&RIGHT(A1,LEN(A1)-FIND(" ",A1)),下拉填充即可

内容的提问来源于stack exchange,提问作者Jim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:57:08