首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

正则表达式如何写!得到P标签里面的数据

2012-09-23 
正则表达式怎么写!得到P标签里面的数据div classgame_info1p分类:a href/flash_fl/13_1.htm cl

正则表达式怎么写!得到P标签里面的数据
<div class="game_info1">
<p>分类:<a href="/flash_fl/13_1.htm" class="green">儿童小游戏</a> | 大小:205K | 日期:2介绍012-09-03</p>
<p>专题:<a href='/special/223.htm'>幼儿教育</a> <a href='/special/202.htm'>学习类</a> </p></div>


我要分别得到 
 儿童小游戏 
  205 
  跟专题标签里面的数据以逗号隔开(不包括<a>)


<div class="operate">
<div id="GameKey">
<ul><li><SPAN class=ico_c_mouseleft></SPAN>鼠标操作</li></ul><div class='clear'></div><div class="game_cz_fg"></div>
<div class="clear"></div>
</div>
鼠标控制移动,左键点击调下踩跷跷板,注意要踩到正确的答案哦!</div>
<!-- 装扮类独有提示开始 -->
<!-- 装扮类独有提示结束 -->
<h2 class="h2_t t6" title="如何开始"></h2>
<div class="game_caption">游戏加载完成后点击右下角的按钮开始游戏</div>
   
 
   
<h2 class="h2_t t3" title="游戏目标"></h2>
<div class="game_caption"><P>正确的选择算术题的答案,挑战好的成绩吧!</P></div>
   
</div>

我要得到<div class="operate"> 里面的所有数据

<!-- 装扮类独有提示开始 -->
<!-- 装扮类独有提示结束 -->
不包括这个里面的

 我该怎么写

[解决办法]

C# code
 string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("utf-8"));//读取txt                string pattern_1 = @"(?i)<div[^>]*?class=(['""]?)game_info1\1[^>]*?>\s*?<p>[\s\S]*?<a[^>]*?>([^<>]+?)</a>[^::]*?[::](\d+)[\s\S]*?</p>";                pattern_1 += @"\s*?<p>[^<>]+?(<a[^>]*?>(?<text>[^<>]+?)</a>\s*?)*?</p></div>";                //tempStr = Regex.Replace(tempStr,pattern,"<tr>$0</tr>");                foreach (Match m in Regex.Matches(tempStr, pattern_1))                {                    //循环输出                    //                     string t1 = m.Groups[2].Value;//儿童小游戏                    string t2 = m.Groups[3].Value;//205                    string t3 = string.Join(",", m.Groups["text"].Captures.Cast<Capture>().Select(a => a.Value));//幼儿教育,学习类                }
[解决办法]
第二个注意你div的开始和结束地方
C# code
string tempStr = File.ReadAllText(@"C:\Documents and Settings\Administrator\桌面\Test.txt", Encoding.GetEncoding("utf-8"));//读取txt                string pattern_2 = @"(?isx)<div[^>]*class=(['""]?)operate\1[^>]*?>((?><div[^>]*>  (?<Open>)|</div>  (?<-Open>)|(?:(?!</?div\b).)*)*(?(Open)(?!)))</div>";                string result = Regex.Replace(Regex.Match(tempStr, pattern_2).Groups[2].Value, @"<!--[\s\S]*?-->",string.Empty);                /*                 * <div id="GameKey">                    <ul><li><SPAN class=ico_c_mouseleft></SPAN>鼠标操作</li></ul><div class='clear'></div><div class="game_cz_fg"></div>                    <div class="clear"></div>                    </div>                    鼠标控制移动,左键点击调下踩跷跷板,注意要踩到正确的答案哦!                 */ 

热点排行