5

Есть HTML

<table>
....
<!--ID 25--></table>

<table> .... <!--ID 26--></table>

Регулярка

<table>(.*)<!--ID [0-9]{0,4}--></table>

возвращает полностью код, содержащий 2 таблицы сразу.
Как запросить, чтобы регулярка вернула каждую таблицу по отдельности?

mymedia
  • 8,602
  • Может быть, не каждую таблицу по отдельности, а одну таблицу? Второй регуляркой - вторую таблицу? – Rookie_cfg Sep 09 '14 at 10:16
  • @Алексей Дорохов, Если вам дан исчерпывающий ответ, отметьте его как верный (нажмите на галку рядом с выбранным ответом). – ReinRaus Sep 09 '14 at 13:14

1 Answers1

9

Надо уменьшить жадность квантификатора, то есть заменить * ("жадная" версия) *? ("ленивой" версией). Вот так:

<table>(.*?)<!--ID [0-9]{0,4}--><\/table>
         ^^

Или (если библиотека регулярных выражений не поддерживает модификатор DOTALL)

<table>([\s\S]*?)<!--ID [0-9]{0,4}--><\/table>
        ^^^^^^^^

Посмотреть пример работы

VenZell
  • 19,872