Whitelist HTML tags Microsoft Sanitizer and custom Regex
You could simplify the declaration of the tags you want to keep, as it is very structured:

var whitelist = new List&lt;string&gt;(new string[] { "p", "h1", "br" });

foreach (var w in whitelist) {
  txt = txt.Replace("&lt;" + w + "&gt;", "&amp;lt;" + w + "&amp;gt;")
           .Replace("&lt;" + w + "/&gt;", "&amp;lt;" + w + "/&amp;gt;"));
}

var remove = Sanitizer.GetSafeHtmlFragment(txt);

foreach (var w in whitelist) {
  remove = remove.Replace("&amp;lt;" + w + "&amp;gt;", "&lt;" + w + "&gt;")
                 .Replace("&amp;lt;" + w + "/&amp;gt;", "&lt;" + w + "/&gt;"));
}

var again = RegexHelpers.StripHtmlAttributes(remove);

var tt = again;