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

正则表达式:使用否定前瞻匹配无嵌套HTML table标签

匹配无嵌套的HTML table标签

需求说明

要匹配HTML中完整且无嵌套<table>标签的<table>元素:

  • 匹配范围从<table开始,到对应的</table>结束
  • 中间内容不能包含任何<table标签
  • 示例中第一个正确匹配是最内层的<table width=300 border=0 cellspacing=0 cellpadding=0><tr><td>A</td></tr></table>,外层包含嵌套table的不匹配

错误正则分析

你尝试的(<table(?!<table)(.+?)</table>)存在两个问题:

  1. 仅检查了<table后面紧跟的内容不是<table,无法限制中间内容里出现<table
  2. 非贪婪匹配(.+?)会在遇到第一个</table>时停止,但如果这个</table>属于嵌套的table,就会错误匹配不完整的外层table片段

正确正则表达式

使用否定前瞻确保中间内容不包含<table,同时匹配到正确的</table>:

<table(?:(?!<table).)*?</table>

正则解释

  • <table:匹配table标签的起始部分
  • (?:(?!<table).)*?:非捕获组,匹配任意字符,但每次匹配前会检查当前位置后面不是<table,*?是非贪婪匹配,确保遇到第一个</table>就停止
  • </table>:匹配table标签的结束部分

匹配验证

用你提供的示例HTML测试,该正则会精准匹配所有无嵌套的内层table元素:

  • 匹配结果1:<table width=300 border=0 cellspacing=0 cellpadding=0><tr><td>A</td></tr></table>
  • 匹配结果2:<table width=300 border=0 cellspacing=0 cellpadding=0><tr><td>C</td></tr></table>
  • 匹配结果3:<table width=300 border=0 cellspacing=0 cellpadding=0><tr><td>E</td></tr></table>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 15:55:16