Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.08.28;
Скачать: CL | DM;

Вниз

Какой самый простой строковый алгоритм?   Найти похожие ветки 

 
R_R   (2011-05-06 01:52) [0]

Есть два тега открывающий и закрывающий, нужно найти индекс вхождения соответсвующего закрывающего тега, внутри могут быть такие же теги...


 
Германн ©   (2011-05-06 02:02) [1]


> Какой самый простой строковый алгоритм?
>
> R_R   (06.05.11 01:52)
>
> Есть два тега открывающий и закрывающий, нужно найти индекс
> вхождения соответсвующего закрывающего тега, внутри могут
> быть такие же теги...
>

PosEx не?


 
Дмитрий С ©   (2011-05-06 06:43) [2]

а что там сложного for и вперед


 
w   (2011-05-06 07:05) [3]

for
считаем открывающие и закрывающие теги попутно запоминая их позиции


 
han_malign   (2011-05-06 09:43) [4]

Выделение тэга (с признаком открытие,закрытие[,<лист/>]) - элементарно.
Для проверки незакрытых тэгов нужен стек(LIFO) открытых тэгов, если стек опустошен - это искомый закрывающий...
Можно простой рекурсией(на то он и стек) - если глубина не очень большая...

З.Ы. Естественно нужно обрабатывать коллизии непарных открытий/закрытий тэга.
Если это строгий XML - можно ограничиться той же рекурсией с проверкой последнего отрытого.
Если это HTML - все гораздо веселее - придется делать таблицу известных(описанных в спецификации) тэгов, с признаками обязательности закрытия, допустимыми закрывающими родителями, и является ли "брат" зарывающим(для известных тэгов это вроде всегда так) или вложенным, а так же поиск по всему стеку открытых тэгов...
Например, по старой спецификации вполне допустима конструкция:
<table>
  <tr><td>1.1<td>1.2
  <tr><td>2.1<td>2.2
</table>

- это не учитывая, что браузеры в режиме совместимости обрабатывают и недопустимые по спецификации полузакрытые тэги...


 
Anatoly Podgoretsky ©   (2011-05-06 10:15) [5]

> Германн  (06.05.2011 02:02:01)  [1]

А зачем тут EX когда и обычного POS достаточно, и до лампочки какие то
другие теги.
Весь алгоритм влазит в одну строчку


 
clickmaker ©   (2011-05-06 11:02) [6]

> Весь алгоритм влазит в одну строчку

алгоритм - в студию


 
Anatoly Podgoretsky ©   (2011-05-06 12:06) [7]


> это не учитывая, что браузеры в режиме совместимости обрабатывают
> и недопустимые по спецификации полузакрытые тэги...

По условию

> Есть два тега открывающий и закрывающий


 
Anatoly Podgoretsky ©   (2011-05-06 12:06) [8]

index := Pos(закрывающий тег, строка);


 
Cobalt ©   (2011-05-06 12:53) [9]

все гениальное - просто :)

З.Ы. грамотнее формулируйте условия


 
Дмитрий С ©   (2011-05-08 18:09) [10]


> Anatoly Podgoretsky ©   (06.05.11 12:06) [8]

внутри могут быть такие же теги, это не учитывается



Страницы: 1 вся ветка

Текущий архив: 2011.08.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.008 c
1-1265075139
gecha
2010-02-02 04:45
2011.08.28
Автонаведение курсора на определенный объект


4-1241950542
DelphiN!
2009-05-10 14:15
2011.08.28
Перехват WM_INPUT всех окон


15-1304713794
Юрий
2011-05-07 00:29
2011.08.28
С днем рождения ! 7 мая 2011 суббота


15-1305086552
Demo
2011-05-11 08:02
2011.08.28
Дисковое пространство для форума


15-1303914069
xayam
2011-04-27 18:21
2011.08.28
Идея для программы