|
|
|
| есть html код
<td><div>1</a></td>
<td><div>2</div></td>
|
пытаюсь собрать регулярку которая вытащить теги div со всем содержимым, если между ними нет </td>, пробовал так
|<div>.*?(?!</td>)</div>|si
| , но не работает как хочется.
подскажите как исправить. | |
|
|
|
|
|
|
|
для: f111
(02.07.2011 в 04:35)
| | /<div>[^(<\/td>)]<\/div>/is | |
|
|
|
|
|
|
|
для: Deed
(02.07.2011 в 11:09)
| | а если внутри блочного элемента кроме текста есть и теги?
<td><div>1</a></td>
<td><div>2<a>5</a></div></td>
|
как быть?
.*? после квадратных скобок не помогает | |
|
|
|
|
автор: ..... (02.07.2011 в 23:26) |
|
|
для: Deed
(02.07.2011 в 11:09)
| | :) проверили ?
>......
(?!</?td) проверяет есть.ли далее </?td
Проверка при каждой итерации .* примерно так
(?:(?!</?td\b).)*
чуть быстрее может работать что.то типа более жадного
(?>(?!</?td\b).[^<]*)*
, но тут возникает диллема ;) оставить.ли просто (?:...)*? Или все.же жадное (?>...)* добавив что.то вроде (?!</?(?:div|td)\b)
, непроверял :) | |
|
|
|
|
|
|
|
для: .....
(02.07.2011 в 23:26)
| | . | |
|
|
|
|
|
|
|
для: .....
(02.07.2011 в 23:26)
| | последний вариант (?!</?(?:div|td)\b) у меня не заработал, а остальные два как надо, и второй вариант как вы и сказали быстрее....вот бы ещё врубить что там и как там происходит.
спасибо. | |
|
|
|