2010-08-06 9 views
1

2 개의 문자열을 비교하려고하는데, 이미 일부 HTML 서식이 있다는 것을 깨달았습니다.문자열에서 모든 HTML 서식을 제거하십시오.

string1 == string2 일 때이 두 문자열을 어떻게 일치시킬 수 있습니까? Html Agility Pack

string1 = "This is a test"; 
string1 = "<font color=\"black\" size=\"1\">This is a test</font>"; 
+0

http://stackoverflow.com/questions/787932/using-c-regular-expressions-to-remove-html-tags –

+1

DUP 때문이다 유효하지 않은 C#. 'string1 = "이것은 테스트입니다"-'''를 보시오. – Oded

+0

HTML 버전도 유효하지 않습니다. C# - 내부를 이스케이프해야합니다. – Oded

답변

7

로드 HTML을 (참고 : 나는 HTML 서식이 선행 될 것입니다 무엇인지 잘 모릅니다), 및 텍스트 만 추출합니다.

string html = "<html><body><div>test</div></body></html>"; 
HtmlDocument document = new HtmlDocument(); 
document.LoadHtml(html) 
string text = document.DocumentNode.InnerText; 

<script> 노드의 콘텐츠를 제거하지 않습니다,하지만 당신은 쉽게 스크립트가 첫 번째 노드를 제거 할 수 있습니다.

+1

필수 링크 - http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – Oded

+0

@Mikael Svenson - 텍스트를 추출하는 방법은 무엇입니까? HTML 민첩성 팩? – leora

+0

@ooo : 어떻게해야하는지 샘플을 추가했습니다. –

-5

체크 아웃 system.web.Httputility.HTMLdecode

+1

과 같은 결과를 제공합니다. –

0
string newText = System.Text.RegularExpressions.Regex.Replace(OldHtmlTextHere, "<[^>]*>", string.Empty); 
+1

안녕하세요. 내부 텍스트에 &과 같은 문자 엔티티가있는 경우에도 여전히 실패 할 수 있습니다. 그리고 다시, 나는 받아 들인 anser의 해결책이 그것을 처리하는지 확실하지 않다. –

+0

@MartinMaat 내가 아는 한, 나는이 프로젝트를 모든 프로젝트에서 사용한다. 결코 실망시키지 마라! – Reza

관련 문제