Замените теги в строке и отметьте прежнюю позицию вхождения - PullRequest
0 голосов
/ 24 марта 2020

У меня есть строка с 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.

Но я не уверен, что мое решение эффективно. Перебор всех вхождений кажется мне неэффективным, может быть, кто-то знает лучший подход?

...