using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
using System.Linq;
public class Test
{
public static void Main()
{
var s = "Foo: Some Text Bar: Some Other Text Foo-Bar: Even More Text";
var res = Regex.Split(s, @"(?<!^)\s+(?=\b(?:Bar|Foo(?:-?Bar)?):)");
Console.WriteLine(string.Join("\n", res));
Console.WriteLine("--- Another idea ---");
var matches = Regex.Matches(s, @"\w+(?:-\w+)*:.*?(?=\s*(?:\w+(?:-\w+)*:|$))", RegexOptions.Singleline)
.Cast<Match>()
.Select(x => x.Value)
.ToList();
Console.WriteLine(string.Join("\n", matches));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwp1c2luZyBTeXN0ZW0uTGlucTsKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBzID0gIkZvbzogU29tZSBUZXh0IEJhcjogU29tZSBPdGhlciBUZXh0IEZvby1CYXI6IEV2ZW4gTW9yZSBUZXh0IjsKCQl2YXIgcmVzID0gUmVnZXguU3BsaXQocywgQCIoPzwhXilccysoPz1cYig/OkJhcnxGb28oPzotP0Jhcik/KTopIik7CgkJQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIlxuIiwgcmVzKSk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIi0tLSBBbm90aGVyIGlkZWEgLS0tIik7CgkJdmFyIG1hdGNoZXMgPSBSZWdleC5NYXRjaGVzKHMsIEAiXHcrKD86LVx3KykqOi4qPyg/PVxzKig/Olx3Kyg/Oi1cdyspKjp8JCkpIiwgUmVnZXhPcHRpb25zLlNpbmdsZWxpbmUpCgkJICAgIC5DYXN0PE1hdGNoPigpCgkJICAgIC5TZWxlY3QoeCA9PiB4LlZhbHVlKQoJCSAgICAuVG9MaXN0KCk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIlxuIiwgbWF0Y2hlcykpOwoJfQp9