Вы можете попытаться заменить части, которые вы хотите сохранить, на какой-то промежуточный формат, а затем восстановить исходный после удаления всех других тегов.
string1.replaceAll("\\<br.*?>", "[br]");
string1.replaceAll("\\<a href='(.*?)'.*?>(.*?)\\<.*?>", "[link='$1' desc='$2']");
string1.replaceAll("\\<.*?>","");
string1.replaceAll("\\[br\\]", "<br\\>");
string1.replaceAll("\\[link='(.*?)' desc='(.*?)']", "<a href=\"$1\">$2<\\a>");
Код не проверен, поэтому он может не работать:)