var regex = new Regex(@"([\w-]+)\s*:\s*([^;]+)");
var match = regex.Match("font-size:11pt;font-color:red;text-align:left;");
while (match.Success)
{
var key = match.Groups[1].Value;
var value = match.Groups[2].Value;
Console.WriteLine("{0} : {1}", key, value);
match = match.NextMatch();
}
Редактировать: Это не должно быть "полное" решение. Это, вероятно, делает работу в 80% случаев, и, как всегда, последние 20% будут на несколько дороже; -)