Попробуйте,
^(1 (Day|Month|Year)|[1-9][0-9]* (Days|Months|Years))$
Он не примет то, что я считаю недопустимым, например, "5 дней" и "04 месяца"
Объяснение:
Либо вводится «1 день / месяц / год», либо это цифра 1–9, за которой следует любое количество цифр 0–9, за которыми следует пробел и одна из строк «Дни», «Месяцы» или «Годы» * 1008.*