Мне нужно разметить строку с идентификаторами, указывающими начало и конец подстроки, которая прошла тест.
Предположим, у меня есть строка «Быстрая коричневая лиса перепрыгивает через ленивую собаку», и я хотел разметить строку тегом для каждого слова, начинающегося с символов «b» и «o».Последняя строка будет выглядеть так: «Быстрые <tag>brown</tag>
скачки лисы <tag>over</tag>
ленивая собака».
Используя комбинацию регулярных выражений и LINQ, у меня есть правильная логика для достижения того, чего я хочу, но моя производительностьне то, что я хочу, потому что я использую String.Insert для вставки тегов.Наши строки могут быть очень длинными (> 200 КБ), а количество подстрок для тега может быть близко к сотне.Ниже приведен код, который я использую для вставки тегов.Учитывая, что я знаю начало и длину каждой подстроки, как я могу обновить строку 'input' быстрее?
.ForEach<Match>(m => {
input = input.Insert(m.Index + m.Length, "</tag>");
input = input.Insert(m.Index, "<tag>");
});