Более короткое регулярное выражение для диапазона дней недели / месяцев - PullRequest
2 голосов
/ 10 июля 2019

Мне нужно регулярное выражение для соответствия дням недели в двух форматах: обычным способом, например, "mon", "fri" и т. Д., Но мне также нужно такое же регулярное выражение для формата диапазона, например, "mon"-fri "

То же для месяцев:" jan "," feb "" jan-dec "

У меня есть это рабочее регулярное выражение:

^((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)|((jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)))$

Но он огромный и не уверен, что идеален.

Ответы [ 2 ]

1 голос
/ 10 июля 2019

Ну, к сожалению, вы не указали свой язык, поэтому я предполагаю, что что-то идет.

(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(?:-(?1))?

Перечислите ваши месяцы в группе захвата, затем выберите тот же подшаблон с помощью (?1) и сделайте егоопционально вместе с тире (?:-...)?

см. здесь

0 голосов
/ 10 июля 2019
^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)(-(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec))?$
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...