コード例 #1
0
ファイル: Patterns.cs プロジェクト: IvionSauce/MeidoBot
    // ----------------------------------------------------------------------------------------------------------
    // In a sense also a helper function for PatternMatch, but this is the main function deciding whether a title
    // matches a pattern.
    // ----------------------------------------------------------------------------------------------------------

    static bool IsMatch(string[] pattern, string title)
    {
        // Each pattern is an array of constituents. The title needs to contain each of them.
        string tmpTitle = title;

        foreach (string s in BangShorthands.ExpandPattern(pattern))
        {
            int startIndex = tmpTitle.IndexOf(s, StringComparison.OrdinalIgnoreCase);

            if (startIndex >= 0)
            {
                // Addendum: if we have a match, remove it from the the tmpTitle, this to ensure that if we
                // have a pattern with repeated words it only matches when the title indeed contains
                // multiple instances of that word.
                tmpTitle = tmpTitle.Remove(startIndex, s.Length);
            }
            else
            {
                return(false);
            }
        }

        return(true);
    }