Posteriormente a mirar en varios repositorios y páginas webs al terminar hemos descubierto la respuesta que te compartiremos ahora.
Solución:
Si no puede usar una solución orientada al analizador HTML para filtrar las etiquetas, aquí hay una expresión regular simple para ello.
string noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();
Idealmente, debería hacer otra pasada a través de un filtro de expresiones regulares que se encargue de múltiples espacios como
string noHTMLNormalised = Regex.Replace(noHTML, @"s2,", " ");
Tomé el código de @Ravi Thapliyal e hice un método: es simple y puede que no limpie todo, pero hasta ahora está haciendo lo que necesito que haga.
public static string ScrubHtml(string value) ", "").Trim();
var step2 = Regex.Replace(step1, @"s2,", " ");
return step2;
He estado usando esta función por un tiempo. Elimina prácticamente cualquier html desordenado que pueda arrojarle y deja el texto intacto.
private static readonly Regex _tags_ = new Regex(@"<[^>]+?>", RegexOptions.Multiline | RegexOptions.Compiled);
//add characters that are should not be removed to this regex
private static readonly Regex _notOkCharacter_ = new Regex(@"[^w;@.:/\?=|%!() -]", RegexOptions.Compiled);
public static String UnHtml(String html)
html = HttpUtility.UrlDecode(html);
html = HttpUtility.HtmlDecode(html);
html = RemoveTag(html, "");
html = RemoveTag(html, "