У меня есть строка с html -подобными тегами, например:
This is a <red>sample</red> <green><red>string</red></green>.
, и я хочу преобразовать ее в читаемую человеком строку вывода:
This is a sample string.
с список помеченных слов / фраз с указанием его тега, его позиции начального и конечного символов:
- начало: 10, конец: 16, фраза: «образец», тег : красный
- начало: 17, конец: 23, фраза: «строка», тег: зеленый
- начало: 17, конец: 23, фраза: «строка», тег: красный
Мое решение теперь состоит в том, чтобы найти все вхождения тегов (число тегов можно считать фиксированным до преобразования строки). Затем замените открывающий и закрывающий теги и пересчитайте положение тегов (чтобы не искать их снова) и повторите l oop.
Но я не уверен, что мое решение эффективно. Перебор всех вхождений кажется мне неэффективным, может быть, кто-то знает лучший подход?