Comment puis-je supprimer toutes les balises HTML, y compris & nbsp en utilisant regex en C #. Ma chaîne ressemble à
"hello
"
Si vous ne pouvez pas utiliser une solution orientée par parsingur HTML pour filtrer les balises, voici une simple expression rationnelle.
ssortingng noHTML = Regex.Replace(inputHTML, @"<[^>]+>| ", "").Trim();
Vous devriez idéalement faire un autre passage à travers un filtre regex qui prend en charge plusieurs espaces comme
ssortingng noHTMLNormalised = Regex.Replace(noHTML, @"\s{2,}", " ");
J’ai pris le code de @Ravi Thapliyal et j’ai mis au point une méthode: c’est simple et peut ne pas tout nettoyer, mais jusqu’à présent, il fait ce dont j’ai besoin.
public static ssortingng ScrubHtml(ssortingng value) { var step1 = Regex.Replace(value, @"<[^>]+>| ", "").Trim(); var step2 = Regex.Replace(step1, @"\s{2,}", " "); return step2; }
J’utilise cette fonction depuis un moment. Supprime à peu près tout le HTML malpropre que vous pouvez lui lancer et laisse le texte intact.
private static readonly Regex _tags_ = new Regex(@"<[^>]+?>", RegexOptions.Multiline | RegexOptions.Comstackd); //add characters that are should not be removed to this regex private static readonly Regex _notOkCharacter_ = new Regex(@"[^\w;@.:/\\?=|%!() -]", RegexOptions.Comstackd); public static Ssortingng UnHtml(Ssortingng html) { html = HttpUtility.UrlDecode(html); html = HttpUtility.HtmlDecode(html); html = RemoveTag(html, ""); html = RemoveTag(html, "