[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: А как выделить область самого объемлющего тега?
yuriy
Утро доброе!
А как выделить область самого объемлющего тега из одинаковых тегов?



Спустя 13 минут, 55 секунд (27.09.2011 - 06:34) EvilDev написал(а):
$('.mytag').attr('border','1px solid #f00');

Спустя 5 минут, 49 секунд (27.09.2011 - 06:39) yuriy написал(а):
Есть такая вот конструкция:
(ффвв) (ввапаав) (ффыфы(ыыв)(фывфыв(фывыфв))) (фывыфв)
Тут всего 4 самых объемлющих тега. Как их всех выделить?

Спустя 1 минута, 52 секунды (27.09.2011 - 06:41) yuriy написал(а):
EvilDev $('.mytag').attr('border','1px solid #f00');
Это ты будешь мух ловить такой хлопушкой.

Спустя 5 минут, 41 секунда (27.09.2011 - 06:47) Invis1ble написал(а):
yuriy
Цитата
А как выделить область самого объемлющего тега из одинаковых тегов?

А что ЭТОо значит?
Каких еще "объемлющих"?

Спустя 1 минута, 5 секунд (27.09.2011 - 06:48) yuriy написал(а):
Да вот то и значит. Смотри пример выше.

Спустя 1 минута, 58 секунд (27.09.2011 - 06:50) EvilDev написал(а):
yuriy
А ты вопрос конкретнее задавай, а не груби

Спустя 1 минута, 12 секунд (27.09.2011 - 06:51) Invis1ble написал(а):
Я увидел, фыв-фыв в скобках laugh.gif
1. Где теги ?
2. Какой из них "самый объемлющий" ?
3. Что за "область"?
4. Чем выделить?

Спустя 11 секунд (27.09.2011 - 06:51) yuriy написал(а):

 ! 

М
не груби людям
Invis1ble

Спустя 1 минута, 6 секунд (27.09.2011 - 06:52) Игорь_Vasinsky написал(а):
тебе как выделять?
preg_replace

теги в круглых скобках чтоли?

выще пример - то мутноватненький biggrin.gif

Спустя 29 секунд (27.09.2011 - 06:53) yuriy написал(а):
() - это границы тегов. Ну, в HTML другие границы тегов, а тут для простоты просто скобки. Вот нужно выделить самый объемлющий.

Спустя 3 минуты, 14 секунд (27.09.2011 - 06:56) yuriy написал(а):
Нет, просто выделить preg_match_all-ом. Да даже и не им, а просто выражение шаблона мне бы.

Спустя 6 минут, 53 секунды (27.09.2011 - 07:03) Invis1ble написал(а):

Спустя 3 минуты, 39 секунд (27.09.2011 - 07:07) yuriy написал(а):
)) Хороший учебник подсунули. Ладно, как найду выражение сообщу, как найти область самого объемлющего тега. На скидку, видать, никто не знает.

Спустя 8 секунд (27.09.2011 - 07:07) Игорь_Vasinsky написал(а):
Invis1ble
ты ещё и злапамятный biggrin.gif

Спустя 41 секунда (27.09.2011 - 07:07) Игорь_Vasinsky написал(а):
yuriy
вот он то и знал biggrin.gif просто ты поторопился понтоваться wink.gif

Спустя 2 часа, 2 минуты, 57 секунд (27.09.2011 - 09:10) inpost написал(а):
Адекватно надо спрашивать, а потом адекватно вести себя, тогда и ответ захотят давать ДРУГИЕ люди.

Спустя 23 минуты, 38 секунд (27.09.2011 - 09:34) yuriy написал(а):
Да вот ответ то давать никому, как раз, и не придётся. Ни другим ни мне. Регулярные выражения БЕССИЛЬНЫ перед вложенными или, как ещё говорит, рекуррентными структурами. Так что, ребята, программируйте поиск таких структур вручную.

Спустя 27 минут, 58 секунд (27.09.2011 - 10:02) alex12060 написал(а):
yuriy

Что-то совсем не врубился.
Это типа так?


<div id="tag1"></div>
<div
id="tag2"><b></b></div>
<div
id="tag3"><div id="tag1"><div id="tag2"><b></b></div></div></div>
<b></b>



И здесь самый объемный тэг получился div с id "tag3" ?
Тебе его надо выделить?

Спустя 5 минут, 9 секунд (27.09.2011 - 10:07) yuriy написал(а):
Совершенно верно. Нужно выделить "tag3", но только с тем условием, что теги то все должны быть безликие. Неотличимые друг от дружки. Регулярные выражения не справляются с такой задачей. Всё равно нужно использовать цикл. В один заход не получится.

Спустя 2 минуты, 8 секунд (27.09.2011 - 10:09) yuriy написал(а):
Я имею в виду, границы тегов у всех тегов одинаковые, как в примере со скобками.

Спустя 3 минуты, 58 секунд (27.09.2011 - 10:13) alex12060 написал(а):
yuriy

Регулярное выражение здесь вполне справится.

Спустя 4 минуты, 48 секунд (27.09.2011 - 10:18) yuriy написал(а):
alex12060 Не будем голословными. Попробуй написать.

Спустя 44 секунды (27.09.2011 - 10:19) yuriy написал(а):
В книжке по регулярным выражениям чётко сказано - не могут.

Спустя 6 минут, 24 секунды (27.09.2011 - 10:25) inpost написал(а):
yuriy
Я тебя не понимаю... ты пришел на форум, зарегистрировался, написал тему И СРАЗУ пишешь всем: "нее, вам с этим не справиться!", какой смысл вообще первых двух действий?

Спустя 4 минуты, 6 секунд (27.09.2011 - 10:29) yuriy написал(а):
inpost
Не лепи горбатого. Я задал вопрос, потом сам же на него и ответил. Ответил, что регулярные выражения в этом случае не справляются. Какие притенении? Или ты из полиции нравов? Может Лжеэксперт? Тут их и так хватает.

Спустя 49 минут, 8 секунд (27.09.2011 - 11:18) Игорь_Vasinsky написал(а):
yuriy
Ты что то против ЛжеЭкспертов имеешь? ты судишь по названию группы? Сам какой-то не понятный. Зачем на форум-то зашёл? со стенами надоело разгаваривать?

Спустя 26 минут, 27 секунд (27.09.2011 - 11:45) yuriy написал(а):
"Лжеэксперт" я употребил в данном случае буквально и, возможно, к вашей группе это не относится.

Спустя 2 минуты, 16 секунд (27.09.2011 - 11:47) inpost написал(а):

 ! 

М
Неадекватное и грубое поведение. Так будешь общаться со шпаной за гаражами. Тут перед тобой взрослые люди. Отправляйся в бан на 2 дня и пересмотри своё поведение там.
inpost

Спустя 2 минуты, 57 секунд (27.09.2011 - 11:50) m4a1fox написал(а):
От черт! Все веселье пропустил! smile.gif А чел то загоняется!

Спустя 40 минут, 19 секунд (27.09.2011 - 12:30) Winston написал(а):
Если взять пример alex12060 то как-то так получится

Свернутый текст
$str = '<div id="tag1"></div>
<div id="tag2"><b></b></div>
<div id="tag3"><div id="tag1"><div id="tag2"><b></b></div></div></div>
<b></b>'
;

preg_match_all("#(<([^\s]+).*[^>]*>.*</\\2[^>]*>)#iuU", $str, $match);

$result = max(array_map(create_function('$item', 'global $match; return array(strlen($item), array_search($item, $match[1]));'), $match[1]));
echo 'Max length: ' . $result[0] . '<br/>';
echo 'Line: ' . ($result[1] + 1) . '<br/>';
echo 'String: ' . htmlspecialchars($match[1][$result[1]]) . '<br/>';


_____________
void x;
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.