Регулярные выражения: дата рождения - C#

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

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

Здравствуйте, итак, имеются даты рождения вот в каком виде:
a CYR"">9 сентября 1986 г. (26&nbsp;лет)<o:p>
erif="">22 года (12.12.1990)</SPA
CYR="">4 августа 1994 г. (18&nbsp;ле
s-serif="">&nbsp;(9&nbsp;мая&nbsp;1991)<SPAN
Tahoma CYR"">3 ноября 1989 г. (23&nbsp;года)<o:p><
rial="">&nbsp;(24&nbsp;декабря&nbsp;1992)<SPAN 
="">&nbsp;(5&nbsp;декабря&nbsp;1986)<
</strong> (26 декабря 1988<meta i
="">&nbsp;(5&nbsp;декабря&nbsp;1986)<SPAN
="">&nbsp;(9&nbsp;мая&nbsp;1991)<
="" CYR="">5 июля 1990 г.
написал вот такой код, но однако работает не всегда
                var borndate = new List<string>();
                
                Regex regex = new Regex(@"([1-31]{1,2}).([1-12]{1,2}).([1950-2050]{4,4})");
                Match match = regex.Match(_data);
                while (match.Success)
                {
                    borndate.Add(match.Value);
                    match = match.NextMatch();
                }
                
                regex = new Regex(@"(\[1-31]{1,2}) ([а-я]{3,8}) ([1950-2050]{4,4})");
                match = regex.Match(_data);
                while (match.Success)
                {
                    borndate.Add(match.Value);
                    match = match.NextMatch();
                }
                //="">&nbsp;(5&nbsp;декабря&nbsp;1986)<SPAN
                regex = new Regex(@"(\[1-31]{1,2})&nbsp;([а-я]{3,8})&nbsp;([1950-2050]{4,4})");
                match = regex.Match(_data);
                while (match.Success)
                {
                    borndate.Add(match.Value);
                    match = match.NextMatch();
                }
 
                if (borndate.Count > 0)
                {
                    return borndate[0];
                }
                else
                {
                    return "Невозможно прочитать значение";
                }
Причём, вот этот код:
Regex(@"([1-31]{1,2}).([1-12]{1,2}).([1950-2050]{4,4})");
работает отлично. А остальные регулярные выражения не работают. Да и ещё, буду благодарен, если кто то подскажет, как записать несколько регулярных выражений в один Regex. Сколько я не читал про регулярные, я не могу понять особо, как их составлять. Спасибо.

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

textual
Листинг программы
@"(sans-serif="">[А-Яа-я]{5,14}<o:p>)|(>Гражданство: [А-Яа-я]{5,14})|(CYR"">[А-Яа-я]{5,14}<o:p>)");

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


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

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

10   голосов , оценка 3.9 из 5
Похожие ответы