Используя синтаксис perl для определения регулярных выражений, можно начать с:
!<body.*?>(.*)</body>!smi
Затем примените следующую замену к результату этой группы:
!<script.*?</script>!!smi
!<[^>]+/[ \t]*>!!smi
!</?([a-z]+).*?>!!smi
/<!--.*?-->//smi
Это, конечно, не отформатирует вещи в виде текстового файла, но удалит весь HTML (в основном, есть несколько случаев, когда он может работать не совсем правильно). Однако лучше всего использовать синтаксический анализатор XML на любом языке, который вы используете, чтобы правильно проанализировать HTML и извлечь из него текст.