2014-09-18 7 views
0

웹 페이지에서 추출한 데이터가 약간 있습니다. 이러한 문자 사이의 모든 것을 제거 할 수있는 방법을 알고 싶습니다. < 및> 또한 문자 자체를 제거합니다. 여기에 내가 가지고 싶은 사이트 -문자열의 모든 것을 두 개의 문자 사이에서 제거합니다.

<a>SomeTextHere</a>Moretext<br><tr>SomeText</tr> 

에서 점점 오전 문자열의 예 내 최종 결과가

SomeTextHere MoreText SomeText 

I 신속하고 효율적으로이 작업을 수행 할 수있는 방법이 있나요을 BE-하는 무엇입니까?

+1

@codebased의 답변에 단지 몇 가지 추가 사항이 있습니다.'. *?'는 정규 표현식이며 "everything"을 나타냅니다. 은'string.Empty' (""를 의미)로 대체 될 것입니다. 공백이 필요하면'string.Empty'를'' "'로 대체해야합니다. regex는'System.Text.RegularExpressions'에서 찾을 수 있습니다. – BroVirus

답변

2

그것은 보인다 실제 태그를 제거합니다

다음과 다른 모든 것들을 유지하면서 (<와> 태그 선언의 일부를 형성하지 않는 문자를 포함한 HTML 주석

private string StripTagsRegex(string source) 
{ 
    return Regex.Replace(source, "(</?[a-z][a-z0-9]*[^<>]*>|<!--.*?-->)+", " ", RegexOptions.IgnoreCase | RegexOptions.Singleline | RegexOptions.Multiline).Trim(); 
} 

이 방법을 사용 :.

<a>SomeTextHere</a>Moretext<br><tr>SomeText</tr>

난 당신이 정말 요구했다 생각이다

SomeTextHere MoreText SomeText

된다.

+0

이것은 형식화 된 것 같습니다. – TheUnrealMegashark

3

이 간단한 RegEx를 사용할 수 있습니다.

private string StripTagsRegex(string source) 
{ 
      return Regex.Replace(source, "<.*?>", string.Empty); 
} 

더 복잡한 작업의 경우 일반적으로 권장되는 도구 인 Html Agility Pack을 사용하십시오. 조작 된 HTML을 가져 와서이를 XHTML로 그리고 나서 XML 클래스와 같은 트래버스 가능한 DOM으로 마사지합니다. 당신을 위해 무엇을 요구하는지하는 것은 하나의 공백으로 연속 된 여러 HTML 태그를 대체하는 것처럼의 codebased 대답은 바로 태그의 양쪽에 무슨 연결할 것 동안

+0

좋아, 그거야! 감사! – TheUnrealMegashark

+0

비록 htmlagilitypack으로 작업하려고 시도했지만 신뢰할 수있는 결과를 반환하지는 않겠습니다. – TheUnrealMegashark

+0

걱정할 필요가 없습니다. 다행히 도울 수있어서 기뻐요 – codebased

관련 문제