@Blockshot

Как найти в строке даты (регулярные выражения)?

Есть строка: 9999-456-132, 1995-12-08, 1995-20-09, 1995-09-35, 19954-09-12,2005-12-08,1887-13-08, 1835-01-01

Нужно найти только даты в формате: YYYY-MM-DD

Я пытался через следующую формулу: (([0-9]{4}|2\d{3})-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1]))

Результат следующий: [('1995-12-08', '1995', '12', '08'), ('9954-09-12', '9954', '09', '12'), ('2005-12-08', '2005', '12', '08'), ('1835-01-01', '1835', '01', '01')], а должен : 1995-12-08, 9954-09-12, 2005-12-08, 1835-01-01
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
Isafu
@Isafu
(18|19|20)\d\d-((0[1-9]|1[012])-(0[1-9]|[12]\d)|(0[13-9]|1[012])-30|(0[13578]|1[02])-31)

Данная регулярка будет работать с 1800 года
656dfeca33ea5215833765.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы