Главная страница
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.005 c
3-1263280888
Tornado
2010-01-12 10:21
2011.08.28
Не могу записать библиотеку


15-1304863305
Дмитрий С
2011-05-08 18:01
2011.08.28
Как узнать какая программа обрабатывает хоткей?


11-1233209905
s_arty
2009-01-29 09:18
2011.08.28
проблема с www.kolnmck.ru


15-1304354356
@!!ex
2011-05-02 20:39
2011.08.28
Как влияет Range check на работу результирующего кода?


4-1249917325
A.Melnyk
2009-08-10 19:15
2011.08.28
Как измененить иконки файлов?