using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var text = @" SYMBOL: PDWFNA = 0; // Projektierung D-Weg Freimeldung nicht // auswerten SYMBOL: PDWLE = 0; // Länge des Durchrutschweges"; var matches = Regex.Matches(text, @"<\w{2}:Value> SYMBOL: (P.*)=(.*)//(.*(?:\n[\s-[\r\n]]*//.*)*)"); foreach (Match m in matches) { Console.WriteLine("--- A new match ---"); Console.WriteLine($"Group 1: {m.Groups[1].Value}"); Console.WriteLine($"Group 2: {m.Groups[2].Value}"); Console.WriteLine("Group 3: {0}", string.Join(" ", m.Groups[3].Value.Split(new[] {"//"}, StringSplitOptions.RemoveEmptyEntries) .Select(x => x.Trim()) ) ); } } }