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(); } } }