This does the job:
var entry = "<key n=1>xzsd:test <sk id=1 hi=1>test <tag1>.............</tag1> <tag2>.............</tag2> ................ </sk> <sk id=2>test2 <tag1>.............</tag1> <tag2>.............</tag2> ................ </sk> </key>";
string pattern = "<key .*?>(.*)</key>";
Match match = Regex.Match(entry, pattern);
while (match.Success)
{
Console.WriteLine("Found: {0}",
match.Groups[1].Value); //find only what is in (.*)
match = match.NextMatch();
}