Как предлагают другие, вы можете использовать анализатор HTML, который является надежным способом справиться с вашими потребностями. Но я думаю, что это добавит много накладных расходов, так как парсер должен много чего сделать, чтобы понять HTML-код.
Может быть, ваша идея использовать регулярные выражения не так уж плоха. Это тоже должно быть быстрее.
Я предлагаю вам использовать Regex , чтобы заменить каждый открывающий и закрывающий тег пустой строкой. Все, что не заменено, должно быть текстом, появляющимся в интернет-браузере ...
string input = "<p> <br /> </p>";
string pattern = "<[^<>^]+?>";
string replacement = "";
string result1 = Regex.Replace(input, pattern,replacement);
pattern = "[\s\t\n]*"; ///filter for space, new line, tab
string result_final = Regex.Replace(result1 , pattern, replacement);
if (string.IsNullOrEmpty(result_final)) ... /// empty html