using System.Text; using System.Text.RegularExpressions; namespace Base.Utils { public static class RegexUtils { public static readonly RegexOptions Text = RegexOptions.CultureInvariant | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture | RegexOptions.Compiled; public static string Balance(string escapedStart, string escapedEnd) { // \(((?>[^()]+|\((?<n>)|\)(?<-n>))+(?(n)(?!)))\) return new StringBuilder() .Append(escapedStart) .Append(@"((?>[^") .Append(escapedStart) .Append(escapedEnd) .Append(@"]+|") .Append(escapedStart) .Append(@"(?<n>)|") .Append(escapedEnd) .Append(@"(?<-n>))+(?(n)(?!)))") .Append(escapedEnd) .ToString(); } } }