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

Всем привет, что то никак не могу придумать как перебрать подобное.

Вот строка
4,6,7,28,9,8,12

Я знаю нужные мне цифры (Делаю выборку из БД)
сделал вот такое регулярное выражение
3,|4,|5,|6,|7,|8,|9,|10,|11,|12,|13,|14,|15,|16,|17,|18,|19,|20,|21,|47,|45,|68,|100,|104

но беда в том что оно принимает 28, как за 8 и в итоге делает выборку из бд (Вообще эти цифры это номера категорий)

также возможно в строке только одна цифра без запятой. Как написать выражение чтобы выборка была только по нужным категориям?
  • Вопрос задан
  • 564 просмотра
Решения вопроса 1
@IS-Builder
~ PHP-8 & REGEXP - This is a really powerful kit ~
Можно сделать ограничение слева (указать границу слова[символа если угодно]), и вероятно сделать символ запятой необязательным. И конечно же - сгруппировать: Демо
UPD: Для компактной записи шаблона можно использовать класс диапазона чисел ([0-9]+ или \d+).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Нормализовать базу и использовать IN (...)
Ответ написан
Ваш ответ на вопрос

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

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