getDates method

List<String> getDates(
  1. String text
)

Implementation

List<String> getDates(String text) {
  RegExp dateRegExp = RegExp(r'\b\d{2} [A-Z]{3} \d{4}\b');
  List<DateTime> dates = [];
  Iterable<RegExpMatch> matches = dateRegExp.allMatches(text);
  if (matches.isNotEmpty) {
    for (RegExpMatch match in matches) {
      String? dateStr = match.group(0);
      if (dateStr != null) {
        List<String> dateParts = dateStr.split(' ');
        if (dateParts.length > 2) {
          int day = int.parse(dateParts[0]);
          String month = dateParts[1];
          int year = int.parse(dateParts[2]);

          DateTime date = DateTime(year, _getMonthNumber(month), day);
          dates.add(date);
        }
      }
    }
    dates.sort((a, b) => a.compareTo(b));
    List<String> stringDates = [];
    for (var element in dates) {
      stringDates.add(element.toString());
    }
    return stringDates;
  }

  return [];
}