Название: Plaint text -> html tagged text Отправлено: Alp от Ноябрь 17, 2009, 16:49 Есть строчка с HTML-тэгами (A), есть она же только без них (B). И есть подстрока (C), которая входит в последнюю (даны начальный индекс и длина).
Задача: найти строку, соответствующую (C) в строке (A) с учетом всех тегов. Например: A = "Однажды в <some tag="qwe">студеную зимнюю</some> пору <bold>я из лесу вышел</bold>, <a href="asdasd">был сильный</a> мороз" B = "Однажды в студеную зимнюю пору я из лесу вышел, был сильный мороз" C = "я из лесу вышел, был сильный" bIdxStart = 31, bLength = 28 Надо найти aIdxStart (=54) и aLength (=62) Алгоритм "находим первое слово из С, берем правую часть относительно него от А, стрипаем теги, проверяем остаток строки, если не сошлось ищем дальше" не подходит - перед первым словом из С в А могут быть открывающие теги. Второй вариант как модификация первого - заменить в тегах пробелы на подчеркивания (А'), после чего найти начало (как описано выше) и по числу пробелов определить конец последовательности. Из-за сохранения числа символов полученные данные будут применимы и к исходной последовательности А. Может есть варианты умнее? |