0
我有一個fck編輯器,用戶在其中輸入一些文本。而在代碼中,我想剝離類,文本的id屬性發布。我知道這可以通過正則表達式來完成 而且我已經編寫了一些代碼來執行此操作,但不幸的是它無法正常工作。刪除給定html中發佈的所有標籤的class,id屬性
private string RemoveScripts(string input)
{
string re1 = "(.*?"; // Non-greedy match on filler
string re2 = "(class)"; // Word 1
string re3 = "(=)"; // Any Single Character 1
string re4 = "(\".*?\"))"; // Double Quote String 1
string re5 = "(id)";
Regex regClass = new Regex(re1 + re2 + re3 + re4, RegexOptions.IgnoreCase | RegexOptions.Singleline);
Regex regID = new Regex(re1 + re5 + re3 + re4, RegexOptions.IgnoreCase | RegexOptions.Singleline);
input = regClass.Replace(input, new MatchEvaluator(ReplaceClassID));
input = regID.Replace(input, new MatchEvaluator(ReplaceID));
return input;
}
private string ReplaceClassID(Match m)
{ return ""; }
其實,我*不*肯定,這可以用正則表達式完成。 「真正的」正則表達式不足以解析所有的HTML。現在,幾乎所有這些日子都是一個擴展的正則表達式,而你試圖解析的東西不會聽起來像它會違背HTML的遞歸本質(這是正則表達式無法處理的) ,但在* best *的情況下,它會非常複雜(感謝評論,CDATA塊等)。你最好的選擇是使用一個真正的HTML解析器。 – 2010-12-18 05:02:31