using System; using System.Text.RegularExpressions; using System.Linq; public class Test { public static void Main() { var s = "lat range: 49.000000 to 50.000000 actual lat 49.212059 lon range: 16.000000 to 17.000000 actual lon 16.626276"; var pattern = @"actual (lat|lon) (?\d+\.\d{1,6})|(?\d+\.\d{1,6}) (lat|lon)"; var results = Regex.Matches(s, pattern) .Cast() .Select(m => m.Groups["val"].Value) .ToList(); Console.WriteLine(string.Join("\n", results)); } }