Проверка на 30 февраля через регулярные выражения - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста решить задачу. Надо проверить сколько раз в тексте встречается дата в формате дд-мм-гггг. Все работает,но проверку на 30 февраля не знаю как сделать.
Листинг программы
  1. Regex reg = new Regex(@"\b(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-([0-9]{4})\b", RegexOptions.IgnoreCase);
или только вот такое извращение-решение ?????
Листинг программы
  1. (((19|20)([2468][048]|[13579][26]|0[48])|2000)-02-29|((19|20)[0-9]{2}-(0[4678]|1[02])-(0[1-9]|[12][0-9]|30)|(19|20)[0-9]{2}-(0[1359]|11)-(0[1-9]|[12][0-9]|3[01])|(19|20)[0-9]{2}-02-(0[1-9]|1[0-9]|2[0-8])))]

Решение задачи: «Проверка на 30 февраля через регулярные выражения»

textual
Листинг программы
  1. using System;
  2. using System.Text.RegularExpressions;
  3. using System.Globalization;
  4.  
  5. namespace ConsoleApplication18
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             string str = "С 10-01-2017 по 30-02-2017 состоится нечто, а 12-01-2017 бонусы";
  12.             string[] dateValues = new string[10];//тут можно сначала посчитать, а потом объявить и наполнить массив
  13.             string pattern = "dd-MM-yyyy";
  14.             DateTime parsedDate;
  15.             Regex reg = new Regex(@"\b(0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-([0-9]{4})\b", RegexOptions.IgnoreCase);
  16.             MatchCollection matches = reg.Matches(str);
  17.             int count = 0;
  18.             foreach (Match mat in matches)
  19.             {
  20.                 dateValues[count++] = mat.ToString();
  21.  
  22.             }
  23.             foreach (var dateValue in dateValues)
  24.             {
  25.                 if (DateTime.TryParseExact(dateValue, pattern, null, DateTimeStyles.None, out parsedDate))
  26.                     Console.WriteLine("Значение найденного объекта {0}", parsedDate);
  27.             }
  28.             Console.ReadKey();
  29.         }
  30.     }
  31. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы