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

如何用如下正则的形式取小弟我给出的HTML字符

2013-10-17 
怎么用如下正则的形式取我给出的HTML字符本帖最后由 flyso 于 2013-10-16 10:46:22 编辑HTML字符:div sty

怎么用如下正则的形式取我给出的HTML字符
本帖最后由 flyso 于 2013-10-16 10:46:22 编辑 HTML字符:
<div style="Z-INDEX: 101;position:absolute;left:23.17mm;top:23.1mm;font-size:20;font-family:黑体;BACKGROUND-COLOR: white; color: black">日期(Date):2012年12月1日</div>

正则形式(用这个正则套)
 var list = Regex.Matches(str, @"(?is)<ST:(?=[^>]*?id=([""'])(?<id>[^""']+)\1)(?=[^>]*?tooltip=([""'])(?<tooltip>[^""']+)\2)[^>]*>").OfType<Match>().Select(t => new { id = t.Groups["id"].Value, tooltip = t.Groups["tooltip"].Value }).ToList();

            if (list.Count > 0)
            {
                foreach (var obj in list)
                {
                    Response.Write("ST:" + obj.id + "id:" + obj.tooltip + "<br />");
                   }
            }


怎么通过以上正则形式获取
 html字符中的
Z-INDEX
left
top
font-size
再就是<div...></div>中间的值,如现在的html就是“日期(Date):2012年12月1日”

[解决办法]

var list = Regex.Matches(tempStr, @"(?is)<div[^>]*?style=(['""]?)(z-index:\s*?(?<zIndex>-?\d+)
[解决办法]
left:\s*?(?<left>-?\d+(\.\d+)?)
[解决办法]
top:\s*?(?<top>-?\d+(\.\d+)?)
[解决办法]
font-size:\s*?(?<fontSize>\d+)
[解决办法]
[^'""])*?\1[^>]*?>\s*?(<b>)?(?<text>((?!<(img
[解决办法]
b)[^>]*?>)[\s\S])*?)\s*?(</b>)?</div>").OfType<Match>().Select(t => new { zIndex = t.Groups["zIndex"].Value, left = t.Groups["left"].Value, top = t.Groups["top"].Value, fontSize = t.Groups["fontSize"].Value, text = t.Groups["text"].Value }).ToList();

热点排行