Мне нравится соответствовать элементу "table", который имеет класс "zot" и содержит как минимум два элемента "td".Например, таблица, которая содержит только «th», но не содержит «td», не должна совпадать.
Я безуспешно пробовал следующее выражение:
<table class="zot">([\S\s]*?(?!\/table>)<td){2,}
То же выражение в более читаемом свободном интервалеСинтаксис:
<table class="zot"> # literal
( # begin of group
[\S\s] # non whitespace or whitespace
* # quantifier
? # greediness modificator
(?!\/table>) # negative look ahead assertion with the literal "/table>"
<td # literal
) # end of group
{2,} # quantifier
Возможно, мое понимание негативного взгляда неверно.
Я создал кодовое перо для случая: https://regexr.com/43mmh
В чем моя ошибка,пожалуйста?Спасибо.
Ниже вы найдете мой HTML-код для теста (такой же, как в кодовой ручке):
<table class="zot">
<tr>
<th>a</th>
<th>b</th>
</tr>
<tr>
<td>c</td>
<td>d</td>
</tr>
</table>
<p>Lorem</p>
<table class="zot">
<tr>
<th>e</th>
</tr>
<tr>
<td>f</td>
</tr>
</table>
<table class="zot">
<tr>
<th>g</th>
<th>h</th>
</tr>
<tr>
<td>i</td>
<td>j</td>
</tr>
</table>
Какие совпадения я хочу получить?
<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