正则高手 看看你是不是真正的熟练

w87875251l 2013-08-21 10:42:33
根据一个网址 url提取的文章的内容,有固定html标签 类似这样



<div id="matter">
<div id="fykuang" float:left;=""></div>
<div id="matterc">
<p>
   继《
<span class="cmsHotLink">
<a target="_blank" href="http://newgame.17173.com/_lol/">英雄联盟</a>
</span>
》职业联赛(简称:LPL)季后赛OMG折桂完美收官后,LPL夏季赛常规赛将于7月12日火热开启, 除 了LPL春季赛常规赛排名前六队伍IG、OMG、WE.GIGABYTE、ChinaPE、皇族.狼蛛、LMQ.Tc参赛 外,城市英雄争霸赛的冠亚军YG和PE.HK也将参与到常规赛的鏖战中。
</p>
</div>
</div>



现在要把<div id="matter"> </div>包含的html内容取出来 正则不会写了
我写的<div\sid=matter>(\s|\S)+?(</div>) 这样只能截取<div id="matter">
<div id="fykuang" float:left;=""></div>

求高手
...全文
224 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
webdiyer 2013-08-21
  • 打赏
  • 举报
回复
用正则来解析html内容不是一个好主意,如果中间还有其它div,那么基本上是不可能实现的,建议你试试这个:http://htmlagilitypack.codeplex.com/
insus 2013-08-21
  • 打赏
  • 举报
回复
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
好的 有时间看看, 这个匹配是不是适用于 html 标签 比如 取<p> </p>之内的html代码
q107770540 2013-08-21
  • 打赏
  • 举报
回复
1楼用的是正则的平衡组 想要了解更多,可以看看C#版主lxcnn (过客)的blog 话说,好久没见到这个老家伙露面了
q107770540 2013-08-21
  • 打赏
  • 举报
回复
引用 8 楼 w87875251l 的回复:
1楼的无法匹配 。。。。不知道为啥
亲,你代码中的双引号转义了么?
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
1楼的能用 我的问题 ,表示太复杂了,看不懂
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
1楼的无法匹配 。。。。不知道为啥
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
3楼匹配多了 哎
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
1楼还没试 撒打发斯蒂芬
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
测试 3楼的目前能用
游戏人间 2013-08-21
  • 打赏
  • 举报
回复
简单一点的 <div\sid=matter>[\s\S]*?</div>\s*</div> 复杂的好像要写 嵌套的我 也不会。
w87875251l 2013-08-21
  • 打赏
  • 举报
回复
<div id="matter"> </div>内还包含很多html标签 我只是省略了 举了个最简单的例子
q107770540 2013-08-21
  • 打赏
  • 举报
回复
(?is)<div[^>]*id="matter">(?><div[^>]*>(?<o>)|</div>(?<-o>)|(?:(?!</?div\b).)*)*(?(o)(?!))</div>
await2013 2013-08-21
  • 打赏
  • 举报
回复

            string input = @"<div id=""matter"">
   <div id=""fykuang"" style=""float:left;""></div>
   <div id=""matterc"">
      <p>
     继《
           <span class=""cmsHotLink"">
         <a target=""_blank"" href=""http://newgame.17173.com/_lol/"">英雄联盟</a>
         </span>
         》职业联赛(简称:LPL)季后赛OMG折桂完美收官后,LPL夏季赛常规赛将于7月12日火热开启,   除        了LPL春季赛常规赛排名前六队伍IG、OMG、WE.GIGABYTE、ChinaPE、皇族.狼蛛、LMQ.Tc参赛        外,城市英雄争霸赛的冠亚军YG和PE.HK也将参与到常规赛的鏖战中。
      </p>
   </div>
</div>";

            XmlDocument xd = new XmlDocument();
            xd.LoadXml(input);

            var node = xd.SelectSingleNode("div[@id='matter']");
            Console.WriteLine(node.InnerXml);

            Console.Read();

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧