Я предлагаю использовать такой шаблон:
\/(\d{2}[A-Z]{3}(19|20)?\d{2})\/
- Годы ограничены 1900-2099.
Демо
Если вы не хотите разрешать любое двузначное значение для дня \d{2}
,
Вы можете добавить этот шаблон вместо (0[1-9]|[12][0-9]|3[01])
, который соответствует 01-31;
\/((0[1-9]|[12][0-9]|3[01])[A-Z]{3}(19|20)?\d{2})\/
Или если вы разрешите такие даты, как /AB/2MAR92/
, у которых есть дни без начального нуля
вместо этого добавьте (0[1-9]|[12][0-9]|3[01]|[1-9])
:
\/((0[1-9]|[12][0-9]|3[01]|[1-9])[A-Z]{3}(19|20)?\d{2})\/
Я использовал /
в качестве якорей. Если вам это не нравится, вы можете использовать \b
.
В ответ на ваши последние комментарии мой рекомендуемый шаблон выглядит следующим образом:
\b\d{1,2}[A-Z]{3}(?:19|20)?\d{2}\b