У меня могут быть следующие строки:
20200124 (year-month-day)
202001 (year-month)
0124 (month-day)
24 (day)
Я пытаюсь найти регулярное выражение, чтобы можно было сопоставить все вышеперечисленные строки на основе групп захвата. Мое регулярное выражение:
^(?<year>\d{4})?(?<month>\d{2})?(?<day>\d{2})$
Примечание: до сих пор я не рассматривал какой-либо тип проверки для введенной строки, в настоящее время я заинтересован в их правильном сопоставлении.
Есть некоторые проблемы с регулярное выражение, поскольку оно не соответствует правильно во всех случаях.
Например: 20200124
сопоставляется правильно, в то время как 202001
также совпадает, но 01
сопоставляется в группе day
вместо группы month
. Или 2020
соответствует month
и day
группе
Я не уверен, возможно ли сопоставить все перечисленные выше возможности только с одним регулярным выражением?