public static bool WildcardMatch()

in sdk/src/Core/Internal/Utils/StringExtension.cs [49:100]


        public static bool WildcardMatch(this string text, string pattern, bool isCaseInsensitive = true)
        {
            if (pattern == null || text == null)
            {
                return false;
            }

            if (pattern.Length == 0)
            {
                return text.Length == 0;
            }

            if (IsWildcardGlob(pattern))
            {
                return true;
            }

            int i = 0, p = 0, iStar = text.Length, pStar = 0;
            while (i < text.Length)
            {
                if (p < pattern.Length && text[i] == pattern[p])
                {
                    ++i;
                    ++p;
                }
                else if (p < pattern.Length && isCaseInsensitive && char.ToLower(text[i]) == char.ToLower(pattern[p]))
                {
                    ++i;
                    ++p;
                }
                else if (p < pattern.Length && '?' == pattern[p])
                {
                    ++i;
                    ++p;
                }
                else if (p < pattern.Length && pattern[p] == '*')
                {
                    iStar = i;
                    pStar = p++;
                }
                else if (iStar != text.Length)
                {
                    i = ++iStar;
                    p = pStar + 1;
                }
                else
                    return false;
            }

            while (p < pattern.Length && pattern[p] == '*') ++p;
            return p == pattern.Length && i == text.Length;
        }