using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var tekst = "№\tВопрос\tОтвет \n1 \tДата звонка \t08.08.2014 \n2 \tВремя звонка \t16:30 \n3 \tИмя оператора \tИванов Иван \n4 \tНомер телефона абонента \t84957777777 \n5 \tКто звонит \n6 \tНомер карты \n7 \tПрепарат \n8 \tТелефон \n9 \tКомментарий тест звонок "; var s = @"\p{Zs}*"; var z = @"[^\r\n\t]+"; var TdPattern = new Regex( $@"^{s}(\d+){s}\t{s}({z})(?:\t{s}({z}){s})?\r?$", // ^\p{Zs}*(\d+)\p{Zs}*\t\p{Zs}*([^\r\n\t]+)(?:\t\p{Zs}*([^\r\n\t]*)\p{Zs}*)?\r?$ RegexOptions.Compiled | RegexOptions.IgnorePatternWhitespace | RegexOptions.Multiline); var result = TdPattern.Matches(tekst); foreach (Match m in result) { Console.WriteLine(m.Groups[1].Value); Console.WriteLine(m.Groups[2].Value); if (m.Groups[3].Success) Console.WriteLine(m.Groups[3].Value); Console.WriteLine("---------------"); } } }