最近用正则表达式group的概念比较多,留个使用模板
int Blocked,Fail,Pass,Unknown
string msg ="ROOT<color=gray>8.1%</clor>(<color=blue>0</color>,<color=red>2</color>,<color=green>1</color>,34)";
Match mm = Regex.Match(rootNode["Name"].ToString(), @"^ROOT<color=gray>/d+/./d+%</clor>(.*<color=blue>(?<blocked>/d+)</color>,<color=red>(?<failed>/d+)</color>,<color=green>(?<passed>/d+)</color>,(?<unknown>/d+))");
if(mm.Groups.Count ==6)
{
int temp;
if (int.TryParse(mm.Groups["blocked"].Value, out temp))
Blocked += temp;
if (int.TryParse(mm.Groups["failed"].Value, out temp))
Fail += temp;
if (int.TryParse(mm.Groups["passed"].Value, out temp))
Pass += temp;
if (int.TryParse(mm.Groups["unknown"].Value, out temp))
Unknown += temp;
}
说明
用(?<group name>regex expression)来表示一个group,当然也可以不要group name,使用时直接mm.Groups[0]...来访问。
附正则表达式介绍免得老找链接
http://www.regular-expressions.info/reference.html