今天遇到一个问题,要把“<span style='color:#cc0033'>测试</span>”这个字符串里面的“测试”提取出来,还有颜色代码#cc0033;我马上想到了正则表达式,以前看过“C#字符串和正则表达式参考手册”一书,有点印象。查找MSDN和那本书,搞定了这个问题,原来就是这么简单。
Regex matchRegex = new Regex(@"^<span/sstyle='color:(/#/w{6})'>(.*)</span>$");
Match matchMade = matchRegex.Match(drGG["Title"].ToString().TrimEnd());
GroupCollection matchGroups = matchMade.Groups;
matchGroups[0].Value是整个匹配的字符串,matchGroups[1].Value就是“#cc0033”,matchGroups[2].Value就是“测试”;短短的几行,正则表达式真是强悍。我发现空格必须要用/s来进行匹配,否则匹配不成功。#也是一个特殊符号,要用转义符'/'来转移,否则表达式出错。