I've run into a situation where I needed to create a regular expression for HTML tags in a string, and exclude any <non-HTML> tags. This is a rough project and this expression hasn't been completely tested, but it should give you a place to work from:
<\/*\s*(font|FONT)+(\s*|\s+[a-zA-Z0-9\s=\.""'@#\$&\(\)\+;:-]*)>
The CleanHtml method is as follows:
private string CleanHtml(string html)
{
ArrayList htmlTags = new ArrayList();
htmlTags.Add("a");
htmlTags.Add("b");
htmlTags.Add("big");
htmlTags.Add("blockquote");
htmlTags.Add("body");
htmlTags.Add("br");
htmlTags.Add("buttom");
htmlTags.Add("center");
htmlTags.Add("div");
htmlTags.Add("dt");
htmlTags.Add("em");
htmlTags.Add("fieldset");
htmlTags.Add("font");
htmlTags.Add("form");
htmlTags.Add("frame");
htmlTags.Add("h1");
htmlTags.Add("h2");
htmlTags.Add("h3");
htmlTags.Add("h4");
htmlTags.Add("h5");
htmlTags.Add("h6");
htmlTags.Add("head");
htmlTags.Add("hr");
htmlTags.Add("html");
htmlTags.Add("i");
htmlTags.Add("img");
htmlTags.Add("iframe");
htmlTags.Add("input");
htmlTags.Add("label");
htmlTags.Add("legend");
htmlTags.Add("li");
htmlTags.Add("link");
htmlTags.Add("map");
htmlTags.Add("ol");
htmlTags.Add("option");
htmlTags.Add("p");
htmlTags.Add("pre");
htmlTags.Add("q");
htmlTags.Add("s");
htmlTags.Add("small");
htmlTags.Add("span");
htmlTags.Add("strike");
htmlTags.Add("strong");
htmlTags.Add("style");
htmlTags.Add("sub");
htmlTags.Add("sup");
htmlTags.Add("table");
htmlTags.Add("tbody");
htmlTags.Add("td");
htmlTags.Add("textarea");
htmlTags.Add("tfoot");
htmlTags.Add("th");
htmlTags.Add("thead");
htmlTags.Add("title");
htmlTags.Add("tr");
htmlTags.Add("tt");
htmlTags.Add("u");
htmlTags.Add("var");
foreach (string tag in htmlTags)
{
string regularExpresion = @"<\/*\s*(" + tag.ToLower() + "|" + tag.ToUpper() + @")+(\s*|\s+[a-zA-Z=\.""'@#\$&\(\)-\+]*)>";
Regex regex = new Regex(regularExpresion, RegexOptions.IgnoreCase | RegexOptions.Multiline);
html = regex.Replace(html, "").Trim();
}
return html;
}