Existe-t-il un moyen simple de supprimer toutes les balises HTML ou ANYTHING HTML liées à une chaîne?
Par exemple:
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
Ce qui précède devrait vraiment être:
"Celebrity Championship Wrestling de Hulk Hogan [Proj # 206010] (Série Réalité)"
Vous pouvez utiliser un regex simple comme ceci:
public static string StripHTML(string input)
{
return Regex.Replace(input, "<.*?>", String.Empty);
}
Sachez que cette solution a son propre défaut. Voir Supprimer les balises HTML dans String pour plus d'informations (en particulier les commentaires de @ mehaase)
Une autre solution consisterait à utiliser le HTML Agility Pack .
Vous pouvez trouver un exemple utilisant la bibliothèque ici: Pack d'agilité HTML - supprimer les balises indésirables sans supprimer le contenu?
Vous pouvez analyser la chaîne en utilisant Html Agility Pack et obtenir le InnerText.
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(@"<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )");
string result = htmlDoc.DocumentNode.InnerText;
Vous pouvez utiliser le code ci-dessous sur votre chaîne et vous obtiendrez la chaîne complète sans partie html.
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )".Replace(" ",string.Empty);
string s = Regex.Replace(title, "<.*?>", String.Empty);