Задать вопрос

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

В строках таблицы есть поле с перечисленными айдишниками через дефис.
Пример: 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 значения видит.

Подскажите, пожалуйста, как корректно написать подобное выражение.
Заранее спасибо.
  • Вопрос задан
  • 49 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Хекслет
    Python-разработчик
    10 месяцев
    Далее
  • Учебный центр IBS
    RT-001 Эксплуатация RT.DataLake
    1 неделя
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
Решения вопроса 1
@andreskrip Автор вопроса
Решил свою проблему так:

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

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

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

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