RegEx和HTML:如何匹配元素;"富",;,其中至少包含两个其他元素“;酒吧;?(消极前瞻断言)

RegEx和HTML:如何匹配元素;"富",;,其中至少包含两个其他元素“;酒吧;?(消极前瞻断言),html,regex,regex-lookarounds,Html,Regex,Regex Lookarounds,我喜欢匹配元素“table”,它有类“zot”,并且至少包含两个元素“td”。 不应匹配仅包含“th”但不包含“td”的表格 我尝试了以下表达,但没有成功: <table class="zot">([\S\s]*?(?!\/table>)<td){2,} ([\S\S]*?(?!\/table>)#带有文字“/table>”的否定前瞻断言 假设您希望foo出现在bar之前,您可以使用 <table class="zot">((?!\/table>).)

我喜欢匹配元素“table”,它有类“zot”,并且至少包含两个元素“td”。 不应匹配仅包含“th”但不包含“td”的表格

我尝试了以下表达,但没有成功:

<table class="zot">([\S\s]*?(?!\/table>)<td){2,}
([\S\S]*?(?!\/table>)#带有文字“/table>”的否定前瞻断言

假设您希望
foo
出现在
bar
之前,您可以使用

<table class="zot">((?!\/table>).)+foo(?1)+bar(?1)+<\/table>

也就是说,如果可能的话,在您使用的任何环境中,使用合适的HTML解析器可能会更优雅。

我已经完全重写了我的答案,现在您将获得每个表的
1个匹配项,其中包含多个表单元格

正则表达式

<table class="zot">(?:(?:[\S\s](?!\/table>))*?<td){2,}[\S\s]*?<\/table>
(?:(?:[\S\S](?!\/table>)*?)
为“
/table
”创建了一个负面展望

*?
此组匹配零次或多次-非贪婪


您使用的是哪种语言?使用正则表达式解析HTML不是一个好主意。“foo”肯定在“bar”之前吗?谢谢你的回答。但是我没有在正则表达式中提到“foo”和“bar”,因为这只是文本的占位符。我只想知道我的站点中有多少表包含多个td。独立于任何其他内容。我将编辑我的问题和标记,这是我喜欢的匹配。谢谢你的帮助。但是你误解了我。我没有提到其他字符串,而是在正则表达式中提到了“td>”,因为我要搜索的文档中有许多不同的表结构。我希望这项任务有解决办法。谢谢
<table class="zot">
    <tr>
        <th>a</th>
        <th>b</th>
    </tr>
    <tr>
        <td>c</td>
        <td
<table class="zot">
    <tr>
        <th>g</th>
        <th>h</th>
    </tr>
    <tr>
        <td>i</td>
        <td
<table class="zot">((?!\/table>).)+foo(?1)+bar(?1)+<\/table>
<table class="zot">(?:(?!\/table>)[\s\S])+foo(?:(?!\/table>)[\s\S])+bar(?:(?!\/table>)[\s\S])+<\/table>
<table class="zot">(?:(?:[\S\s](?!\/table>))*?<td){2,}[\S\s]*?<\/table>