Регулярное выражение для XX дней, XX месяцев или XX лет - PullRequest
0 голосов
/ 27 ноября 2010

Мне нужно регулярное выражение, которое принимает следующий ввод

1 день

4 дня

15 дней

1 месяц

12 месяцев

1 год

5 лет

Числа могут иметь любую длину.Есть идеи?

Ответы [ 2 ]

5 голосов
/ 27 ноября 2010

Попробуйте,

^(1 (Day|Month|Year)|[1-9][0-9]* (Days|Months|Years))$

Он не примет то, что я считаю недопустимым, например, "5 дней" и "04 месяца"

Объяснение:

Либо вводится «1 день / месяц / год», либо это цифра 1–9, за которой следует любое количество цифр 0–9, за которыми следует пробел и одна из строк «Дни», «Месяцы» или «Годы» * 1008.*

2 голосов
/ 27 ноября 2010
\d+\s+(Day|Month|Year)(s)?
  • \ d + хотя бы одна цифра
  • \ s + хотя бы один пробел
  • (День | Месяц | Год) День или Месяц или Год
  • (s)? опционально множитель единицы
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...