Форум программистов, компьютерный форум, киберфорум
PHP: Laravel
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 28.01.2019
Сообщений: 26
1

Laravel MySQL REGEXP выдает странные вещи

12.01.2021, 10:39. Просмотров 885. Ответов 4
Метки нет (Все метки)

Добрый день

PHP
1
2
$pat_1=$value.'[^0-9]*';
$colection = $offer->whereRaw("message REGEXP '$pat_1'")->latest()->get();
при $value=142

возвращает число 1420

Как так?)))

И еще вопрос почему не работают классы символов типо [:space:]
$pat_1='[:space:]*'.$value.'[:space:]*'; ----- это тоже не работает


помогите кто знает!
Спасибо!!!!

Добавлено через 6 минут
Вообще задаче не пропустить числа 014235 и пропустить р142х или олро142- то есть слева и справа не должно быть цифр а все другие символы допускаются
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.01.2021, 10:39
Ответы с готовыми решениями:

Программа компилируеться но выдает очень странные вещи!
Здравствуйте! Помогите ... Программа компилируеться но выдает очень странные вещи!...

Странные вещи
Какая-то дикость происходит с виндой. (7 Ultimate x64) Раз в 2-3 дня ставятся всякие мэйлы, амиго...

Странные вещи
Такая ситуация. Сайт продвигается исключительно по главной странице (все ключевики на главной)....

Странные вещи...
Тема снесена

4
867 / 598 / 275
Регистрация: 31.08.2019
Сообщений: 1,721
12.01.2021, 10:52 2
Цитата Сообщение от Олег-54 Посмотреть сообщение
'[:space:]*
Нужно больше скобок
MariaDB [xxx]> SELECT 'letters123' REGEXP '^[[:alnum:]]+$';
+--------------------------------------+
| 'letters123' REGEXP '^[[:alnum:]]+$' |
+--------------------------------------+
| 1 |
+--------------------------------------+
1 row in set (0.000 sec)


Цитата Сообщение от Олег-54 Посмотреть сообщение
число 1420
То выражение и должно совпадать, если в любом месте строки 142
MariaDB [xxx]> SELECT '999142999' REGEXP '142[^0-9]*';
+---------------------------------+
| '999142999' REGEXP '142[^0-9]*' |
+---------------------------------+
| 1 |
+---------------------------------+
1 row in set (0.000 sec)
0
0 / 0 / 0
Регистрация: 28.01.2019
Сообщений: 26
12.01.2021, 10:57  [ТС] 3
Как написать чтоб он не пропустил 21420 а пропустил например н-,142л-

Добавлено через 2 минуты
Цитата Сообщение от x_lab Посмотреть сообщение
То выражение и должно совпадать, если в любом месте строки 142

Как написать чтоб он не пропустил 21420 а пропустил например н-,142л-
0
867 / 598 / 275
Регистрация: 31.08.2019
Сообщений: 1,721
12.01.2021, 11:07 4
Лучший ответ Сообщение было отмечено Олег-54 как решение

Решение

Цитата Сообщение от Олег-54 Посмотреть сообщение
Как написать
Самый деревянный вариант наверно такой ))
MariaDB [xxx]> SELECT '999142999' REGEXP '(^|[^0-9])142($|[^0-9])';
+----------------------------------------------+
| '999142999' REGEXP '(^|[^0-9])142($|[^0-9])' |
+----------------------------------------------+
| 0 |
+----------------------------------------------+
1 row in set (0.000 sec)

MariaDB [xxx]> SELECT '99x142x99' REGEXP '(^|[^0-9])142($|[^0-9])';
+----------------------------------------------+
| '99x142x99' REGEXP '(^|[^0-9])142($|[^0-9])' |
+----------------------------------------------+
| 1 |
+----------------------------------------------+
1 row in set (0.000 sec)


Добавлено через 3 минуты
есть варианты с границами букво-цифро-подчёркиваний
[[:<:]], [[:>:]]

These markers stand for word boundaries. They match the beginning and end of words, respectively. A word is a sequence of word characters that is not preceded by or followed by word characters. A word character is an alphanumeric character in the alnum class or an underscore (_).

mysql> SELECT 'a word a' REGEXP '[[:<:]]word[[:>:]]'; -> 1
mysql> SELECT 'a xword a' REGEXP '[[:<:]]word[[:>:]]'; -> 0
0
0 / 0 / 0
Регистрация: 28.01.2019
Сообщений: 26
12.01.2021, 11:08  [ТС] 5
Цитата Сообщение от x_lab Посмотреть сообщение
Самый деревянный вариант наверно такой ))
спасибо большое!!!
Работает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.01.2021, 11:08

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Странные вещи
При разработке, на локальном сервере все работает как надо. Но когда выкладываю на хостинг...

В IE 11 творятся странные вещи
Ребята, кто-нибудь может взглянуть на мой проект и сказать, почему в IE 11 наблюдаются следующие...

Выводит странные вещи...
Вот код изменения записи в типизированном файле, со всякими проверками на ввод) Procedure...

Странные вещи с формами =(
Привет всем, что то я никак не могу найти причину одной загадночной, ну по крайней мере для меня...

Странные вещи с перезарядкой танка
Здравствуйте! Такая проблема. Делаю перезарядку для танка отприсованного на канвасе, тоесть идёт...

Странные вещи Доктора Веб
Устанавливал на Доктора Веб журнальный ключ на 1 месяц. После окончания этого срока у меня лицензия...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.