private static Regex? BuildRegex()

in Core/src/Impl/Tags/IdentityFilter.cs [34:57]


    private static Regex? BuildRegex(string name, IEnumerable<string> wildcards, Func<string, bool> validator)
    {
      int count = 0;
      StringBuilder builder = new StringBuilder();
      foreach (var wildcard in wildcards)
      {
        if (!validator(wildcard))
          throw new ArgumentException($"Invalid {name} wildcard: '{wildcard}'", nameof(wildcards));

        if (count == 0)
          builder.Append("^(?:(?:");
        else if (count >= 1)
          builder.Append(")|(?:");

        builder.Append(ConvertWildcardToRegex(wildcard));
        count++;
      }

      if (count == 0)
        return null;

      builder.Append("))$");
      return new Regex(builder.ToString(), RegexOptions.Compiled);
    }