Как по мне самый быстрый и простой алгоритм: идем посимвольно, когда натыкаемся на < запоминаем позицию+1 и до > -1 (назвем эту подстроку А) Сравнием эту подстроку со списком интетификаторов Если совпадение то проводится замена по шаблонах Далее ищем эту же подстроку методом < +1==A0 && +2==A2 ... > если сошлось то ищем следующее начало.