Как сделать исключение в регулярном выражение?

Каждому рейсу присваивается уникальный идентификационный номер по следующему шаблону «3 буквы (латиница, любой регистр) - (знак дефиса) номер груза (от 0 до 1000, исключая следующие номера: 777 и 315) - (дефис) от 1 до 3 букв (кириллица, верхний регистр) Например: jDT-123-Л , kSR665-ЪГА Не должно быть срабатывания на следующие номера грузов (например: kdO-315-ю или jtfd-777-ШАП).

Есть свои наработки по этому поводу ([A-z]{3})-(\d{1,3})-([А-Я]{1,3})
  • Вопрос задан
  • 266 просмотров
Решения вопроса 2
@dodo512
Если нет поддержки negative lookahead (?!...), то можно попробовать заменить -(\d{1,3})- на
-(7([0-689]\d?|7[0-689]?)?|3([02-9]\d?|1[0-46-9]?)?|[0-24-68-9]\d{0,2})-

sandbox.onlinephpfunctions.com/code/34e74b3e154b70...
Ответ написан
Seasle
@Seasle Куратор тега JavaScript
По 1000 включительно:
/^([A-Za-z]{3})-(?!315|777)(\d{1,3}|1000)-([А-ЯЁ]{1,3})$/

До 1000:
/^([A-Za-z]{3})-(?!315|777)(\d{1,3})-([А-ЯЁ]{1,3})$/

Для нескольких вхождений:
/^(([A-Za-z]{3})-(?!315|777)(\d{1,3})-([А-ЯЁ]{1,3})\s?)+$/

Буква Ё не входит в А-Я.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы