Задача по Regex

Тема в разделе "Решение различных задач по парсингу", создана пользователем talerbiz, 16 мар 2023.

Метки:
  1. talerbiz

    talerbiz Active Member Пользователи

    Регистрация:
    11 мар 2017
    Сообщения:
    143
    К примеру у нас есть такие даты (ниже). Максимально допустимый год - 2037.
    Регулярка типа: (0[1-9]|12[0-9]|3[0-1])\.(0[1-9]|1[0-2])\.20[0-3][0-8]
    Захватывает также 1938 год. Что нужно подправить, чтобы не захватывало 1938?

    01.01.2001
    05.08.2008
    31.11.2038
    31.11.2037
    30.11.2020

    Подскажите pls, есть тут гуру ? )
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Код:
    ([\d]{2})\.([\d]{2})\.(20)([0-3]{1})([0-7]{1})
     
  3. talerbiz

    talerbiz Active Member Пользователи

    Регистрация:
    11 мар 2017
    Сообщения:
    143
    Спасибо, но, 2008 год не выдилился, а он тоже подходит
     
  4. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.442
    Адрес:
    Latvia
    Поправлено регулярное выражение
    Код:
    re:([\d]{2})\.([\d]{2})\.(2008{sep}2009{sep}2018{sep}2019{sep}2028{sep}2029{sep}20[0-3]{1}[0-7]{1})|
    
     
    Последнее редактирование: 16 мар 2023
    talerbiz нравится это.

Поделиться этой страницей