Как правильно указать квантификатор для группы слов?

В строках таблицы есть поле с перечисленными айдишниками через дефис.
Пример: 559-3319-3537-4345-29923

И мне нужно регуляркой проверить, существуют ли уже записи в которых используется минимум 4 айдишника из указанных.

Пример: перед добавлением в базу, мне нужно проверить значение 559-3319-3537-29923-30762 на это условие.

Я собрал паттерн, который работает только в указанном порядке, если же айдишники поменять местами, то не работает.
Паттерн: ^.*\b(-*(559|3319|3537|29923|30762)-*){4,}\b.*$

Изначально думал, что простого (559|3319|3537|29923|30762){4,} должно хватить, но в таком случае тоже не работает, хотя без квантификатора все 4 значения видит.

Подскажите, пожалуйста, как корректно написать подобное выражение.
Заранее спасибо.
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
@andreskrip Автор вопроса
Решил свою проблему так:

(\b(559|3319|3537|29923|30762)\b.*){4,}

или MySQL диалект: ([[:<:]](559|3319|3537|29923|30762)[[:>:]].*){4,}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы