I would use Regular Expressions because they are easier to maintain than loops:
public string GetText(string text, string tag1, string tag2)
{
return Regex.Match(text, String.Format(":{0}[^:]?:(?<text>(\n|.)*):{1}[^:]?:", tag1, tag2)).Groups["text"].Value;
}