fork(1) 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 pattern = @"\bisnull\((?>[^][()]|(?<x>\[[^][]*])|(?<o>)\(|(?<-o>)\))*(?(o)(?!))\)";
  12. var text = "isnull(Num([abc]), [a], [b]) + sum([d])";
  13. var result = Regex.Matches(text, pattern, RegexOptions.IgnoreCase)
  14. .Cast<Match>().Select(p => p.Groups["x"].Captures)
  15. .ToList();
  16. foreach (var coll in result)
  17. foreach (var v in coll)
  18. Console.WriteLine(v);
  19. }
  20. }
Success #stdin #stdout 0.13s 22464KB
stdin
Standard input is empty
stdout
[abc]
[a]
[b]