怎么用如下正则的形式取我给出的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();