fork download
  1. using System;
  2. using System.Text.RegularExpressions;
  3.  
  4. public class Test
  5. {
  6. public static void Main()
  7. {
  8. string input = "((isoCode=s)||(isoCode=a))&&(title=s)&&((ti=2)&&(t=2))||(t=2&&e>5)";
  9. string pattern = @"\(((?>\((?<DEPTH>)|\)(?<-DEPTH>)|.?)*(?(DEPTH)(?!)))\)|&{2}|\|{2}";
  10. MatchCollection matches = Regex.Matches(input, pattern);
  11. foreach (Match match in matches)
  12. {
  13. Console.WriteLine(match.Groups[1].Success ? match.Groups[1].Value : match.Groups[0].Value);
  14. }
  15. }
  16. }
Success #stdin #stdout 0.07s 19616KB
stdin
Standard input is empty
stdout
(isoCode=s)||(isoCode=a)
&&
title=s
&&
(ti=2)&&(t=2)
||
t=2&&e>5