alex00
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору sTa1kEr, ну я тот пример из головы взял и <td id=2> просто левый текст. Хотя если это не XHTML, то вроде закрывающую </td> ставить не обязательно Твоя регулярка мне в первую очередь найдет найдет первую пару <tr> ... </tr>, вот эту <tr>test<td id=1>test</tr> А мне надо грубо говоря надо найти только вторую пару <tr> ... </tr> по признаку нахождения <td id=2> внутри. Ну или по признаку id=2 - это не важно. Можно конечно сделать с твоим регэкспом preg_match_all и пройтись по каждому матчу отдельно с допольнительной проверкой, но хочется "одним махом семерых побивахом" ) Еще другими словами что мне надо - как заставить какую-то часть регулярки срабатывать не на первом подходящем совпадении (самое левом), но находить последнее совпадение (самое правое). Либо как вариант нужна регулярка ищущая любую последовательность символов, но такую что не включает в себя последовательность "xxx". Тут вроде (.(?!xxx))*? подходит, но я уже говорил - с такой регуляркой ПХП на больших строках просто сдыхает без сообщений об ошибке. Может надо здесь сделать отсечения бэктрекига или что-то типа того - я в этом не разбираюсь, потому и спрашиваю Добавлено: Ура! Ура! Ура! Таки угадал - надо было делать отсечение бэктрекинга Такая регулярка заработала и на больших строках, где раньше ПХП валилось Код: @<tr>(?>.(?!</tr>))*?<td id=2>.*?</tr>@i |
|