В Java у меня есть произвольный HTML-документ в виде строки. Для простоты скажем:
String original = "Hello, <strong>this</strong> is a string";
И у меня есть запись о различных местах в строке, всегда в тексте, а не в теге. Например, индекс начала и конца слова «is» равен 29 и 31.
Затем я выполняю преобразование строки - в этом случае удаляем теги HTML. Это оставляет:
original = "Hello, this is a string";
Есть ли элегантный способ получить новый начальный и конечный индексы слова "is" сейчас (12 и 14)?
Единственное возможное решение, которое я могу придумать, - это вставить «флаг» в каждый исходный индекс, удалить HTML, а затем удалить флаги во время записи их местоположений. Это не должно вызывать проблем с разметкой HTML, так как индексы всегда появляются вне тегов.
Если это действительно лучший способ, есть ли у кого-нибудь рекомендации по правильному выбору "флага", который определенно не будет совпадать ни в одном документе HTML?