Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > как ограничить (.)


Автор: stalker2000 19.9.2013, 13:18
Приветствую! Пишу регулярное выражение, которое должно выбрать из html-кода одну из таблиц (не обязательно первую) и запомнить то что между тегами <table> и </table>
Код примерно такой:
Код

<table class="class0" cellpadding="0" cellspacing="0">
<tr>
  <th></th>
  <th><a href="111">111</a></th>
</tr>
<tr class="gone">
  <td><a href="222">222</a></td>
  <td>222</td>
</tr>
</table>

<table class="class1" cellpadding="0" cellspacing="0">
<tr>
  <th></th>
  <th><a href="111">111</a></th>
</tr>
<tr class="gone">
  <td><a href="222">222</a></td>
  <td>222</td>
</tr>
</table>

регулярка:
Код

<table\s+class="class"[^>]+>(.+)<\/table>

Проблема в том, что выбирается всё, вплоть до последнего тега </table>, а мне (в данном примере) нужна только первая таблица. Подскажите, как это сделать?

Результат тут: http://regex101.com/r/gJ7pD4

Автор: maksimoff 19.9.2013, 17:06
Цитата(stalker2000 @  19.9.2013,  13:18 Найти цитируемый пост)
Подскажите, как это сделать?

http://regex101.com/r/oL1gJ6

Автор: baldina 19.9.2013, 20:25
включить ленивый поиск
<table\s+class="class"[^>]+>(.+?)<\/table>

Автор: stalker2000 20.9.2013, 12:30
спасибо!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)