最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

asp.net正則表達式刪除指定的HTML標(biāo)簽的代碼

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:42:56
文檔

asp.net正則表達式刪除指定的HTML標(biāo)簽的代碼

asp.net正則表達式刪除指定的HTML標(biāo)簽的代碼:如果全盤刪除里面的 HTML 標(biāo)簽,可能會造成閱讀上的困難(比如 a, img 這些標(biāo)簽), 最好是刪除一部分,保留一部分. 正則表達式里,判斷 包含某些字符串 是非常容易理解的,但是如何判斷 不包含某些字符串 (是字符串,不是字符,是某些,不是某個) 確實是個費解的事
推薦度:
導(dǎo)讀asp.net正則表達式刪除指定的HTML標(biāo)簽的代碼:如果全盤刪除里面的 HTML 標(biāo)簽,可能會造成閱讀上的困難(比如 a, img 這些標(biāo)簽), 最好是刪除一部分,保留一部分. 正則表達式里,判斷 包含某些字符串 是非常容易理解的,但是如何判斷 不包含某些字符串 (是字符串,不是字符,是某些,不是某個) 確實是個費解的事

如果全盤刪除里面的 HTML 標(biāo)簽,可能會造成閱讀上的困難(比如 a, img 這些標(biāo)簽), 最好是刪除一部分,保留一部分.

正則表達式里,判斷 包含某些字符串 是非常容易理解的,但是如何判斷 不包含某些字符串 (是字符串,不是字符,是某些,不是某個) 確實是個費解的事.
代碼如下:


<(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+>

這個正則是判斷HTML標(biāo)簽不包含 li / ul / a / img / br / span / b 的,就上面的要求來說,是要 刪除 除這里列出的HTML標(biāo)簽,這也是我摸索了很長時間才搞出來的.
(?!exp) 匹配后面跟的不是exp的位置
/?\s? 我一開始試著把它寫到最前面的 < 后面,但是測試失敗了.

下面是一個簡單的函數(shù),把要保留的TAG串起來,生成一個正則表達式,然后把不需要的TAG刪除...
代碼如下:


private static string RemoveSpecifyHtml(string ctx) {
string[] holdTags = { "a", "img", "br", "strong", "b", "span" };//要保留的 tag
// <(?!((/?\s?li)|(/?\s?ul)|(/?\s?a)|(/?\s?img)|(/?\s?br)|(/?\s?span)|(/?\s?b)))[^>]+>
string regStr = string.Format(@"<(?!((/?\s?{0})))[^>]+>", string.Join(@")|(/?\s?", holdTags));
Regex reg = new Regex(regStr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);


return reg.Replace(ctx, "");
}

修正:
上面的正則,如果保留了 li , 實際運行會發(fā)現(xiàn) link 也給保留下來了, 保留 a 會把 addr 也給保留下來, 解決辦法就是加 \b 斷言.
代碼如下:


<(?!((/?\s?li\b)|(/?\s?ul)|(/?\s?a\b)|(/?\s?img\b)|(/?\s?br\b)|(/?\s?span\b)|(/?\s?b\b)))[^>]+>

private static string RemoveSpecifyHtml(string ctx) {
string[] holdTags = { "a", "img", "br", "strong", "b", "span", "li" };//保留的 tag
// <(?!((/?\s?li\b)|(/?\s?ul\b)|(/?\s?a\b)|(/?\s?img\b)|(/?\s?br\b)|(/?\s?span\b)|(/?\s?b\b)))[^>]+>
string regStr = string.Format(@"<(?!((/?\s?{0})))[^>]+>", string.Join(@"\b)|(/?\s?", holdTags));
Regex reg = new Regex(regStr, RegexOptions.Compiled | RegexOptions.Multiline | RegexOptions.IgnoreCase);

return reg.Replace(ctx, "");
}

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

asp.net正則表達式刪除指定的HTML標(biāo)簽的代碼

asp.net正則表達式刪除指定的HTML標(biāo)簽的代碼:如果全盤刪除里面的 HTML 標(biāo)簽,可能會造成閱讀上的困難(比如 a, img 這些標(biāo)簽), 最好是刪除一部分,保留一部分. 正則表達式里,判斷 包含某些字符串 是非常容易理解的,但是如何判斷 不包含某些字符串 (是字符串,不是字符,是某些,不是某個) 確實是個費解的事
推薦度:
標(biāo)簽: 刪除 特定的 代碼代碼
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top