求一div嵌套的正则表达式

fuzy 2009-05-27 10:49:22
比如:
<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">中的内容,正则表达式该如何写
...全文
288 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kkai189 2009-06-12
  • 打赏
  • 举报
回复
class="Ccontent">(?<content>[\s\S]+)</div>
mingxiaodong 2009-05-27
  • 打赏
  • 举报
回复
直接用innerHTML呀 方便
newdigitime 2009-05-27
  • 打赏
  • 举报
回复
string str=Regex.Replace(str,"<.+?>","")
newdigitime 2009-05-27
  • 打赏
  • 举报
回复
建议用 regex.Replace,来去掉所有的<>标记.余下的就是你想要的.
string str=regex.Replace(str,"<.+?>","")
jimh 2009-05-27
  • 打赏
  • 举报
回复
试试
<div class="Ccontent">\s*(<div>[\s\S]*?</div>\s*)*?</div>
cpio 2009-05-27
  • 打赏
  • 举报
回复
关键是里面的<div>可能是不定的啊,如果是固定的话,用正则倒好办
老郭20130824 2009-05-27
  • 打赏
  • 举报
回复
也许: <div class="Ccontent"><div>.*</div></div>之前先去掉回车和空格。

光宇广贞 2009-05-27
  • 打赏
  • 举报
回复
正则提纯文本太麻烦了……
newdigitime 2009-05-27
  • 打赏
  • 举报
回复
"Ccontent\">.*?<div>.*?</div>.*?<div>.*?</div>.*?<div>.*?</div>"
cpio 2009-05-27
  • 打赏
  • 举报
回复
把它当成XML的内容

这样直接取class="Ccontent"的内容

用正则的话,可能会比较麻烦一些
Harvey_He 2009-05-27
  • 打赏
  • 举报
回复
这个主要用到平衡组的匹配
wackyboy 2009-05-27
  • 打赏
  • 举报
回复
不过这个得用这个吧 我觉得

@"(?is)<div class=""Ccontent""> .*?(((?'Open'<div[^>]*>).*?)+((?'-Open'</div>).*?)+)*(?(Open)(?!))</div>"
// 我试了一下可以
wackyboy 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 Harvey_He 的回复:]
引用 11 楼 wackyboy 的回复:
引用 10 楼 Harvey_He 的回复:
C# code
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[^>]…
[/Quote]
呵呵 我说怎么看着这么眼熟呢
不过还真的感谢你啊
我那天写了一下 总差点东西 后来一看你那个才恍然大悟 呵呵
Harvey_He 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 wackyboy 的回复:]
引用 10 楼 Harvey_He 的回复:
C# code
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>)…
[/Quote]
呵呵,你是在我给的方法上改的
wackyboy 2009-05-27
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 Harvey_He 的回复:]
C# code
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>";

[/Quote]
呵呵 哥们 这是我的原创阿
Harvey_He 2009-05-27
  • 打赏
  • 举报
回复

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();
}


110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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