<div class="intro">内容简介:<br />
异能特种兵叶寒被异能研究指挥总部开除军籍,派往华夏大学执行S级任务——奉命泡妞!<br />
这个男人,猥琐、风流、甚至有些贪生怕死,但是他的智慧冠绝空前,而这一次的任务,让他引领了一个谁与争锋的至尊邪神时代,故事,如此展开…<br />
这是属于叶寒的时代,这是一代枭雄只手遮天的时代,这是一个横空与世纵横天下的轻狂时代,这个时代,荣耀和高傲,因为他而烁烁颤抖!<br />
偶遇
<br /><br />
</div>
我想要提取<div class="intro"></div>里面的内容,请问用正则表达式怎么做匹配?麻烦给个正则表达式,谢谢
<div\s+class="intro">(.|\r|\n)*</div>
string test = "<div class=\"intro\">内容简介:<br />" +
" 异能特种兵叶寒被异能研究指挥总部开除军籍,派往华夏大学执行S级任务——奉命泡妞!<br />" +
" 这个男人,猥琐、风流、甚至有些贪生怕死,但是他的智慧冠绝空前,而这一次的任务,让他引领了一个谁与争锋的至尊邪神时代,故事,如此展开…<br />" +
" 这是属于叶寒的时代,这是一代枭雄只手遮天的时代,这是一个横空与世纵横天下的轻狂时代,这个时代,荣耀和高傲,因为他而烁烁颤抖!<br />" +
" 偶遇" +
"<br /><br />" +
"</div>";
Regex reg = new Regex("<div\\s+class=\"intro\">(.|\\r|\\n)*</div>");
if (reg.IsMatch(test))
{
string val = reg.Match(test).Value;
Console.WriteLine(val);
}
@天行健 自强不息: 这种没考虑中间含有DIV的情况
@LCM: 是的,如果中间有div的话最好根据上下文判断,如</div>后有什么内容,不然不好限定
这个是做什么用的?你要抓取新闻?
string source = "<div width=\"123\" class=\"intro\" style=\"abc\">我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br><div><span>内嵌标签</span></div></div>";
Regex pattern = new Regex("<div .*?class=\"intro\".*?>(.*)?</div>",
RegexOptions.Singleline | RegexOptions.Compiled);
var match = pattern.Match(source);
if (match != null)
{
var introduction = match.Groups[1].Value;
Console.WriteLine(introduction);
}
输出:
我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br>我要的内容<br><div><span>内嵌标签</span></div>
这个还可以,不过假如DIV后面再加上几个<div>...</div>的情况就不好只找出前面的那个div中内容了
@LCM: 是的,这个就要看lz到底是要“最外层的”div内容还是“第一个”div内容了,做下简单调整就OK了。