"""自己编写的识别HTML格式标题并自动生成目录的程序"""
import re
# 正文内容放在这里
Test_text = r"""
"""
# 获取标题格式<hx XX>x.x xx</hx>,支持多行(re.MULTILINE)
get_title_pattern = re.compile(r'\<h.*?\>.*?\</h\d\>', re.MULTILINE)
# 找到全部符合标题格式的字符串,也就是标题语句
get_title_result = get_title_pattern.findall(Test_text)
# 准备去掉头尾
del_edge_result = ''
# 将标题语句列表整合到一个字符串中
if get_title_result:
for title_outturn in get_title_result:
del_edge_result += title_outturn
# 获取头尾格式 <hx XX> 和 </hx>
get_head_pattern = re.compile(r'\<h.*?\>',re.MULTILINE)
get_end_pattern = re.compile(r'\<\/h\d\>',re.MULTILINE)
# 将开头替换为'[',末尾替换为'](#)|'
del_head_result = get_head_pattern.sub('[', del_edge_result)
del_end_result2 = get_end_pattern.sub('](#)|', del_head_result)
# 分割模式:以竖线 | 分割
split_pattern = re.compile(r'\|')
# 使用split函数分割
split_result = split_pattern.split(del_end_result2)
# 将分割内容前添加'* '输出
for catalog_outturn in split_result:
find_dot = ''
# 按照标题等级为*前添加空格
for i in range(len(catalog_outturn)):
if catalog_outturn[i] != ' ':
find_dot += catalog_outturn[i]
else:
dot_count = find_dot.count('.')
if catalog_outturn[i-1] == '.':
dot_count -=1
break
if catalog_outturn:
print(' '*(dot_count-1)*2+'* '+catalog_outturn)
else:
print("未找到标题语句!")
识别HTML格式标题并自动生成MarkDown目录Python程序
于 2023-12-09 15:07:22 首次发布