fork download
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text.RegularExpressions;
  6.  
  7. public class Test
  8. {
  9. public static void Main()
  10. {
  11. var text = @"(A) name1, name2, name3, name3 (B) name4, name5, name7 (via name7) ..... (AA) name47, name47 (via name 46) (BB) name48, name49";
  12. var results = Regex.Matches(text, @"(?s)(.*?)(?:\(([A-Z])\2*\)|\z)")
  13. .Cast<Match>()
  14. .Select(x => x.Groups[1].Value)
  15. .Where(z => !string.IsNullOrEmpty(z))
  16. .ToList();
  17. foreach (var s in results)
  18. Console.WriteLine(s);
  19. }
  20. }
Success #stdin #stdout 0.07s 22272KB
stdin
Standard input is empty
stdout
 name1, name2, name3, name3 
 name4, name5, name7 (via name7) ..... 
 name47, name47 (via name 46) 
 name48, name49