Изображение http://img534.imageshack.us/img534/8542/aaagla.jpg Хорошо бы привести пример (любой язык)
Традиционный способ сделать это с помощью стека. Нажмите, когда вы получите открытый тег, и нажмите, когда вы получите закрытый тег. Извлечение из пустого стека или наличие ненулевого стека в конце указывает на несовпадающие теги.
псевдокод
input: lineopen (line having opening tag) input: text (test as array of lines) output: lineclose (line having closing tag) line := lineopen counter := 1 do line := line + 1 if text[line] contains opening tag then counter := counter + 1 if text[line] contains closing tag then counter := counter - 1 while counter > 0 lineclose := line