string testTxt = @”<p>本人是内容<span style=”color: #00000;font-size:15px;font-weight:bold;”>本人是内容1</span>
<span style=”color: #000111;font-size:12px;”>本人是内容2</span>
<span style=”font-size:16px;font-weight:bold;”>本人是内容3</span>本人是内容4</p>”;
var pattern = @”<span\b(?:style\s*=\s*(?<koS>[“””]?)[^”””]*?\b(font-size\s*:\s*(?<FontSize>[#\w]*)[^”””]*)|[^><])+>(?<Txt>[^<>]*)”;
var mcCollections = Regex.Matches(testTxt, pattern, RegexOptions.IgnoreCase);
foreach (Match mcItem in mcCollections)
{
var href = mcItem.Groups[“FontSize”].Value;
<span style=”color: #000111;font-size:12px;”>本人是内容2</span>
<span style=”font-size:16px;font-weight:bold;”>本人是内容3</span>本人是内容4</p>”;
var pattern = @”<span\b(?:style\s*=\s*(?<koS>[“””]?)[^”””]*?\b(font-size\s*:\s*(?<FontSize>[#\w]*)[^”””]*)|[^><])+>(?<Txt>[^<>]*)”;
var mcCollections = Regex.Matches(testTxt, pattern, RegexOptions.IgnoreCase);
foreach (Match mcItem in mcCollections)
{
var href = mcItem.Groups[“FontSize”].Value;
var txt = mcItem.Groups[“Txt”].Value;
Response.Write(“H:” + href + “T:”.PadLeft(10) + txt);
}
目前程序已经可以输出font-size属性了。但是如上本人现在想在输出另外两个font-weight和color怎么修改以上正则表达,请注意3个属性都是可能为空的。
还有“本人是内容”和“本人是内容4”本人能否一起得到希望有先后顺序。
万分感谢!
解决方案
50
假如不是想研究正则表达式,还是在浏览器处理这个容易一些.
<html>
<head>
</head>
<body>
<p>本人是内容<span style="color: #100000;font-size:15px;font-weight:bold;">本人是内容1</span>
<span style="color: #000111;font-size:12px;">本人是内容2</span>
<span style="font-size:16px;font-weight:bold;">本人是内容3</span>本人是内容4</p>
<script type="text/javascript">
<!--
var d = document.getElementsByTagName("p")[0];
var s = d.getElementsByTagName("span");
for(var i=0;i<s.length;i++){
alert(s[i].style.fontSize);
alert(s[i].style.fontWeight);
alert(s[i].style.color);
}
//-->
</script>
</body>
</html>
50