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

Python使用正则将星号后段落转换为Markdown高亮格式的实现问题

实现方案

核心思路是将原来的提取逻辑改为正则替换逻辑,保留原文所有未匹配内容,仅对匹配到的星号段落后的段落做高亮包裹,同时删除所有4个及以上连续星号的行。

完整代码

import re

# 用with上下文管理器处理文件,自动完成后自动关闭,避免资源泄漏
with open('/Users/text.txt', mode='r', encoding='utf-8') as f:
    raw_text = f.read()

processed_text = re.sub(
    # 匹配规则:匹配1行或多行全为4个及以上星号的连续行,后跟目标段落
    r'^\*{4,}(?:\r?\n\*{4,})*\r?\n\s*([^\r\n]+)\s*',
    # 替换规则:删除所有星号行,将捕获到的目标段落用==包裹
    lambda match: f'=={match.group(1).strip()}==\n',
    raw_text,
    flags=re.MULTILINE
)

print(processed_text)

# 如果需要保存处理后的内容到新文件可取消注释下面代码
# with open('/Users/output.md', mode='w', encoding='utf-8') as f:
#     f.write(processed_text)

效果说明

  • 原文中所有未被星号标记的内容会完整保留,不会产生修改
  • 所有连续的4个及以上星号的行都会被自动删除
  • 星号行之后的第一个非空段落会自动被==高亮标记包裹,同时自动清理段落前后的多余空白字符

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 12:18:03