<thead id="b91h7"></thead>
<listing id="b91h7"></listing>
<cite id="b91h7"><dl id="b91h7"><listing id="b91h7"></listing></dl></cite>
<thead id="b91h7"><dl id="b91h7"><th id="b91h7"></th></dl></thead>
<cite id="b91h7"></cite> <var id="b91h7"></var>
<var id="b91h7"></var>
<menuitem id="b91h7"><video id="b91h7"><address id="b91h7"></address></video></menuitem>
<menuitem id="b91h7"><dl id="b91h7"></dl></menuitem>
<thead id="b91h7"><i id="b91h7"><th id="b91h7"></th></i></thead>
<var id="b91h7"></var>
天极传媒£º
天极网
比特网
IT专家网
52PK游戏网
极客修
全国分站

北京上海广州深港南京福建沈阳成都杭州西安长春重庆大庆?#25103;?/a>惠州青岛郑州泰州厦门淄博天津无锡哈尔滨

产品
  • 网页
  • 产品
  • ?#35745;?/li>
  • 报价
  • 下载
全高清投影机 净化器 4K电视曲面电视小家电滚筒洗衣机
您现在的位置£º 天极网 > 软件 > 网页>软件应用>使用正则表达式删除指定的HTML标签

使用正则表达式删除指定的HTML标签

天极网软件频道2010-09-16 16:11我要吐槽

¡¡¡¡更多精彩相关文章推荐£º

¡¡¡¡EditPlus正则表达式巧妙删除文档多余空行

¡¡¡¡动态网页制作PHP常用的正则表达式

¡¡¡¡避免HTML标签错误 提高网页代码规范性¡¡¡¡

点击查看更多设计软件资讯>>

¡¡¡¡抓取某网页的数据后(比如描述)£¬如果照原样显示的话£¬可能会因为它里面包含没有闭合的HTML标签而打乱了格式£¬也可能它里面用了比较让人¡°费解的HTML标签£¬把预订的格式搅乱¡£如果全盘删除里面的HTML标签£¬可能会造成阅读上的困难(比如a£¬img这些标签)£¬最好是删除一部分¡¢保留一部分¡£

¡¡¡¡正则表达式里判断包含某些字符串是非常容易理解的£¬但是如何判断¡°不包含某些字符串¡±确实是个费解的事¡£

¡¡¡¡以下表达式用来判断HTML标签不包含¡¡li¡¡/¡¡ul¡¡/¡¡a¡¡/¡¡img¡¡/¡¡br¡¡/¡¡span¡¡/¡¡b¡¡的£¬就上面的要求来说£¬是要删除这里列出的HTML标签¡£

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

¡¡¡¡(?!exp) 匹配后面跟的不是exp的位置

¡¡¡¡/?\s? 我一开始试着把它写到最前面的 < 后面,但是测试失败了¡£

¡¡¡¡下面是一个简单的函数£¬把要保留的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 , 实?#35797;?#34892;会发现 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, "");

¡¡¡¡}


 

立即下载
£¨作者£º论坛整理责任编辑£º杨玲£©
请关注天极网天极新媒体 最酷科技资讯
扫码赢大奖
评论
* 网友发言均非本站立场£¬本站不在评论栏推荐任何网店¡¢经销商£¬谨防上当受骗£¡
热点推荐
微软Windows 10操作系统Win10系统在Win8的基础上对界面¡¢特性以及跨平台方面做了诸多优化¡£[详细]
Windows 10 新视界 [进入频道][使用技巧][微博互动]
手机整机DIY企业级
ºÚÁú½­Ê±Ê±²Ê¹ÙÍø
<thead id="b91h7"></thead>
<listing id="b91h7"></listing>
<cite id="b91h7"><dl id="b91h7"><listing id="b91h7"></listing></dl></cite>
<thead id="b91h7"><dl id="b91h7"><th id="b91h7"></th></dl></thead>
<cite id="b91h7"></cite> <var id="b91h7"></var>
<var id="b91h7"></var>
<menuitem id="b91h7"><video id="b91h7"><address id="b91h7"></address></video></menuitem>
<menuitem id="b91h7"><dl id="b91h7"></dl></menuitem>
<thead id="b91h7"><i id="b91h7"><th id="b91h7"></th></i></thead>
<var id="b91h7"></var>
<thead id="b91h7"></thead>
<listing id="b91h7"></listing>
<cite id="b91h7"><dl id="b91h7"><listing id="b91h7"></listing></dl></cite>
<thead id="b91h7"><dl id="b91h7"><th id="b91h7"></th></dl></thead>
<cite id="b91h7"></cite> <var id="b91h7"></var>
<var id="b91h7"></var>
<menuitem id="b91h7"><video id="b91h7"><address id="b91h7"></address></video></menuitem>
<menuitem id="b91h7"><dl id="b91h7"></dl></menuitem>
<thead id="b91h7"><i id="b91h7"><th id="b91h7"></th></i></thead>
<var id="b91h7"></var>