모든 HTML 태그 또는 문자열에서 관련된 모든 HTML을 제거하는 쉬운 방법이 있습니까?
예를 들면 :
string title = "<b> Hulk Hogan's Celebrity Championship Wrestling <font color=\"#228b22\">[Proj # 206010]</font></b> (Reality Series, )"
위의 내용은 실제로 다음과 같아야합니다.
“헐크 호건의 연예인 선수권 레슬링 [Proj # 206010] (리얼리티 시리즈)”
답변
다음과 같은 간단한 정규식을 사용할 수 있습니다.
public static string StripHTML(string input)
{
return Regex.Replace(input, "<.*?>", String.Empty);
}
이 솔루션에는 자체 결함이 있습니다. 자세한 내용 은 문자열에서 HTML 태그 제거를 참조 하십시오 (특히 @mehaase의 주석).
또 다른 해결책은 HTML Agility Pack 을 사용하는 것 입니다.
여기에서 라이브러리를 사용하는 예를 찾을 수 있습니다. HTML 민첩성 팩-콘텐츠를 제거하지 않고 원치 않는 태그를 제거 하시겠습니까?
답변
Html Agility Pack을 사용하여 문자열을 구문 분석 하고 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;
답변
아래 코드를 문자열에 사용할 수 있으며 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);