Умеренная жадность в регулярках

486
03 января 2017, 00:44

Думал жадность сработает на меня, но пошло что-то не так. Есть примерный код, из которого надо захватить вторую табличку. Между табличками может быть другой хтмл код, в том числе и таблички другого плана. Сейчас даже добавлю для полноты примера:

<p>Текст</p>
<table>
    <tr>
        <td>разные данные</td>
    </tr>
</table>
<table>
    <tr>
        <td>Режим</td>
    </tr>
    <tr>
        <td>Тратата</td>
    </tr>
</table>
<p>Текст</p>
<table>
    <tr>
        <td>Время</td>
    </tr>
    <tr>
        <td>Тратата</td>
    </tr>
</table>

Пытался делать так^

<table.+?Время.+?</table>

Рабочий пример https://regex101.com/r/ltMG7J/2

Пытался делать позитивное заглядывание назад (?<=...), но сервис матюкается на точки/плюсы внутри скобок позитивного заглядывания.

Не получилось, вопросы:

1) как можно выбрать табличку по примеру регулярки выше? (табличек может быть много разных, не могу привязываться к конкретным этим 3 табличкам).

2) уже решил задачу: как можно перекинуть вторую табличку (режим) в конец хтмл?

Answer 1

Мой ответ из комментариев:

<table(?:(?!</?table>).)+?Время.+?</table>

Тест https://regex101.com/r/ltMG7J/3

В первую .+? введено ограничение, чтобы внутри не было <table> и </table>. Проверка происходит при выборе каждого символа, для этого и введена группа (?:.)+? без обратной связи.

Оптимизированный вариант от @ReinRaus тут https://regex101.com/r/ltMG7J/4 исключает лишние проверки для символов отличных от < и В.

READ ALSO
etur$post ajax ошибка в запросе

etur$post ajax ошибка в запросе

Имеются данные , представленный в виде XML :

405
Подправить код, который пишет все подряд, и перезаписывает снова

Подправить код, который пишет все подряд, и перезаписывает снова

Помогите пожалуйста подправить код, который записывает в файл данные с формы методом POST из формы выбора changed_form Вот скрипт

508
Нет вывода echo с типом строка =&#39;&lt;Delai dobro&#39;;

Нет вывода echo с типом строка ='<Delai dobro';

Приветствую, моя конечная цель сравнить строки!

379
Где хранить сообщения?

Где хранить сообщения?

При разработке сайта я захотел сделать ЛС для пользователейСайт на игровую тематику и, собственно, мне стало интересно, где кроме как в Базе...

489