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

求匹配不在```代码块内的HTML注释的正则表达式

解决方案

要匹配不在```代码块内的HTML注释,得跟踪代码块的开闭状态,不能只检查单行是否有反引号。以下是可行的正则表达式(需支持PCRE语法,开启DOTALL模式):

(?s)(?:^(?!```)|(?!^)\G(?!```))(?:(?!```|<!--).)*\K<!--[\s\S]*?-->

正则说明

  • (?s):开启DOTALL模式,让.能匹配换行符,处理跨多行内容
  • (?:^(?!```)|(?!^)\G(?!```)):锁定代码块外的位置:
    • ^(?!```):行开头且不是代码块起始标记
    • (?!^)\G(?!```):从上一次匹配结束的位置继续,且当前不是代码块起始标记
  • (?:(?!```|<!--).)*:匹配代码块外的任意内容,直到遇到代码块标记或HTML注释
  • \K:重置匹配起点,只保留后面的HTML注释作为匹配结果
  • <!--[\s\S]*?-->:匹配完整的HTML注释(非贪婪模式避免跨多个注释)

注意事项

  • 若用Python标准库re模块,需替换为第三方regex库(标准re不支持\G的连续匹配逻辑)
  • 该正则会自动跳过所有被```包裹的代码块内部的HTML注释,只匹配代码块外的注释

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:10:27