求一div嵌套的正则表达式
比如:<div class="Ccontent">
<div>
第20周太钢出厂价大幅上涨900元/吨,调价后冷轧协议价为18100元/吨,结算价为17500元/吨,热轧协议价为16900元/吨,结算价为16300元/吨;400系涨200协议价为9600元/吨,其中毛边优惠减少90元。目前无锡市场304/2B 2.0冷卷价格在17500元/吨。由于周一不锈钢市场价格已经小幅上涨,因此市场上对今日的出厂价格持观望态度。
</div>
<div> </div>
<div> 5月<span>11日</span>LME综合镍跌<span>70报收12960美元/吨,持仓83376,结算价12775,库存112308减少732吨。如无重大利好消息,LME综合镍的上涨行情也将会在结束。本轮上涨行情从3月30日左右开始,从技术路线上看,即将于本周结束。<br />
<br />
</span></div>
</div>
我想获取<div class="Ccontent">中的内容,正则表达式该如何写 --------------------编程问答-------------------- <div class="Ccontent" id="Ccontent">
document.getElementByid("Ccontent").innerHTML 获取Ccontent里面的所有字符
然后再把里面的html代码过滤掉 --------------------编程问答-------------------- 我主要是对各网站新闻进行采集了,
System.Net.WebRequest wReq;
System.Net.WebResponse wResp;
wReq = System.Net.WebRequest.Create(Web.ToString());
wResp = wReq.GetResponse();//获取Response
通过这样获取html的代码,然后再通过正则表达式来提取网站的内容信息 --------------------编程问答-------------------- 试试
<div class="Ccontent">\s*( <div>[\s\S]*? </div>\s*)*? </div> --------------------编程问答-------------------- 嵌套不是正則搞得定的。 --------------------编程问答--------------------
--------------------编程问答--------------------
string strReg = "(?<=<div class=\"Ccontent\">\r\n";
strReg += "<div>)(?<A0>.+?)(?=</div>)";
--------------------编程问答-------------------- mark先 --------------------编程问答--------------------
//例
string input = @"<div id=""a"">AAA<div id=""b"">BB<div id=""c"">CCC</div> B</div> </div> ";
string id = Console.ReadLine(); //输入要取得div的id
while (id.Trim().ToUpper().CompareTo("G")!=0)
{
string pattern = @"<div id=""" + id + @""">[^<>]*(((?'Open'<div[^>]*>)[^<>]*)+((?'-Open'</div>)[^<>]*)+)*(?(Open)(?!))</div>";
Console.WriteLine(Regex.Match(input, pattern));
id = Console.ReadLine();
}
--------------------编程问答-------------------- C# winform,webform 开发讨论群,
@"(?is)<div class=""Ccontent"">.*?(((?'Open'<div[^>]*>).*?)+((?'-Open'</div>).*?)+)*(?(Open)(?!))</div>"
// 我试了一下可以
欢迎新手,高手
群号:57718204
给你个pattern
--------------------编程问答-------------------- 效率不是很好,不过可以取出来,如果网页写的不标准的话,就取不出来... --------------------编程问答-------------------- up --------------------编程问答-------------------- 通过ID处理嵌套HTML标签 --------------------编程问答-------------------- 涉及到嵌套的,用正则肯定要用平衡组了
pattern = string.Format("<(\\S*?)[^>]*id=(['|\"]){0}(\\2)[^>]*>(?><\\1[^>]*?>(?<n>)|</\\1>(?<-n>)|(?!<\\1[^>]*?>|</\\1>).)*(?(n)(?!))</\\1>", id);
Regex reg = new Regex(@"<div\s*class=""Ccontent""[^>]*>(((?<o>)<div[^>]*>|(?<-o>)</div>|(?:(?!</?div)[\s\S]))*)(?(o)(?!))</div>", RegexOptions.IgnoreCase| RegexOptions.Compiled);
Match m = reg.Match(yourStr);
if (m.Success)
{
richTextBox2.Text = m.Value;
}
当然,涉及到效率问题的时候,就要综合考虑了,可以参考这个帖子中我的回复
求一正则表达式 --------------------编程问答-------------------- 学习
补充:.NET技术 , C#