using System; using System.Text.RegularExpressions; public class Test { public static void Main() { var text = "field1 : value1a value1b field2 : value2a value2b"; var matches = Regex.Matches(text, @"(\w+)\s*:\s*(.*?)(?=\s*\w+\s*:|$)"); foreach (Match m in matches) { Console.WriteLine("-- MATCH FOUND --\nKey: {0}, Value: {1}", m.Groups[1].Value, m.Groups[2].Value); } } }