Ваша текущая часть года 20([0-1]|[0-9]){2}
для обработки с 2000 по 2019 годы просто не требуется никаких изменений, чтобы сделать ее правильной.Третья цифра в части года может быть только 0
или 1
, следовательно, она может быть записана как [01]
, а четвертая цифра может быть любой, следовательно, может быть записана как [0-9]
, и это дает нам 20[01][0-9]
.Ниже приводится ваше модифицированное регулярное выражение, которое вы можете использовать:
^(0[1-9]|[1-2][0-9]|3[0-1])-(0[1-9]|1[0-2])-(19[0-9]{2}|20[01][0-9])$
Демо
Кроме того, поскольку вы просто проверяете свой текст, вы можетепреобразовать все группы в группы без захвата, чтобы повысить производительность.
^(?:0[1-9]|[1-2][0-9]|3[0-1])-(?:0[1-9]|1[0-2])-(?:19[0-9]{2}|20[01][0-9])$
Демонстрация с группой без захвата