WikiFunctions.Tools.DatesCount C# (CSharp) Method

DatesCount() public static method

Counts the number of dates of International/American/ISO format in the text
public static DatesCount ( string text ) : int>.Dictionary
text string Text
return int>.Dictionary
        public static Dictionary<Parsers.DateLocale, int> DatesCount(string text)
        {
            // Performance: split article to list and filter down to items containing numbers, faster than running each regex on whole text
            List<string> possibleDates = text.Split("|=\r\n()".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();

            possibleDates = possibleDates.FindAll(d => d.Length > 4 && d.IndexOfAny("123456789".ToCharArray()) > -1);

            int iso = possibleDates.Select(d => WikiRegexes.ISODatesQuick.Matches(d).Count).Sum();
            int international = possibleDates.Select(d => WikiRegexes.DayMonth.Matches(d).Count).Sum();
            int american = possibleDates.Select(d => WikiRegexes.MonthDay.Matches(d).Count).Sum();

            Dictionary<Parsers.DateLocale, int> results = new Dictionary<Parsers.DateLocale, int>
            {
                {Parsers.DateLocale.ISO, iso},
                {Parsers.DateLocale.International, international},
                {Parsers.DateLocale.American, american}
            };

            return results;
        }
Tools