2011-10-17 221 views
2

如何剝離本文剝離HTML標籤?

<html> 

<body>  

<h1>My First Heading</h1> 

<p>My first paragraph.</p> 
<[email protected]> 
</body> 
</html> 

看起來像

My First Heading 
My first paragraph. 
<[email protected]> 

使用功能

public static string StripHTML(this string htmlText) 
    { 
     var reg = new Regex("<(.|\n)*?>", RegexOptions.IgnoreCase); 
     return reg.Replace(htmlText, ""); 
    } 

我得到

我的第一個標題 我的第一個段落。

+3

<[email protected]>:它不會顯示在html頁面上。你應該htmlencode文本http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx或者你必須做一個非常具體的正則表達式來繞過<>標誌中的電子郵件。 –

回答

2
static void Main(string[] args) 
    { 


     string modified_html = emas(input); 

     HtmlDocument doc = new HtmlDocument(); 

     doc.LoadHtml(modified_html); 

     string test1 = doc.DocumentNode.InnerText; 


     Console.WriteLine(); 


     var reg = new Regex("<(.|\n)*?>", RegexOptions.IgnoreCase); 

     Console.WriteLine(reg.Replace(modified_html , "")); 

     Console.Read(); 
    } 


    public static string emas(string text) 
    { 

     string stripped = text; 

     const string MatchEmailPattern = 
     @"(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@" 
     + @"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\." 
     + @"([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|" 
     + @"([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})"; 
     Regex rx = new Regex(MatchEmailPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase); 
     // Find matches. 
     MatchCollection matches = rx.Matches(text); 
     // Report the number of matches found. 
     int noOfMatches = matches.Count; 
     // Report on each match. 
     foreach (Match match in matches) 
     { 

      stripped = stripped.Replace("<"+ match.Value + ">" , match.Value); 

     } 


     return stripped; 


    } 



    static string input = " Your html goes here "; 
+0

也許我會有

我的第一個標題

<[email protected]>我的第一段。

只有我希望HTML條功能不剝離電子郵件地址。 – cashmere

+0

我已經修改了代碼 – Moons

+0

我已經修改了代碼。您不能使用html敏捷包,因爲它會去掉<>中包含的所有文本。這是我相信的。現在我搜索電子郵件地址並刪除電子郵件附近的sysmbols < and >。請告訴你是否有任何問題 – Moons