Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: регулярка [2]
Форумы портала PHP.SU » PHP » Регулярные выражения » регулярка

Страниц (2): « 1 [2]
 

16. Саныч - 04 Июля, 2011 - 14:24:46 - перейти к сообщению
конечно могу... Вот что такое слово? Это подряд идущие буквы отделенные пробелами с обеих сторон. Верно?.. Но... В конце слова кроме пробела могут быть еще и разные символы, как-то точка, запятая ну и т.д. А вот в начале слова этих символов быть не может (т.к. по правилам написания они тоже отделяются пробелом)... Отсюда и получаем:
(\s|^) - означает пробел или же начало строки (это в том случае если искомое слово идет самым первым в строке, т.е. перед ним нет ничего)
('.$word.') - собственно искомое слово
(\s|\.|\,|\!|\?\:\;|$) - означает пробел, точку, запятую, знак восклицания, знак вопроса, двоеточие, точку с запятой или конец строки (это в том случае если искомое слово идет самым последним в строке, т.е. после него нет никаких символов)

PHP:
скопировать код в буфер обмена
  1. $query = 'SELECT * FROM table WHERE text REGEXP "(\s|^)'.$word.'(\s|\.|\,|\!|\?\:\;|$)iU" ';
17. LIME - 04 Июля, 2011 - 14:49:26 - перейти к сообщению
Саныч
Invalid query: Got error 'repetition-operator operand invalid' from regexp


$query = "SELECT NAME,TEXT FROM marketing WHERE TEXT REGEXP '(\s|^)".$word."(\s|\.|\,|\!|\?\:\;|$)iU'"; -я не ошибся в чем-нибудь ?
18. Саныч - 04 Июля, 2011 - 15:32:55 - перейти к сообщению
Вот попробуйте еще так:
PHP:
скопировать код в буфер обмена
  1. $query = "SELECT NAME,TEXT FROM marketing WHERE TEXT REGEXP '( |^)".$word."( |\\.|\\,|\\!|\\?|\\:|\\;|$)'";
19. LIME - 04 Июля, 2011 - 15:36:55 - перейти к сообщению
Саныч аналогично
20. Саныч - 04 Июля, 2011 - 15:47:35 - перейти к сообщению
LIME пишет:
Саныч аналогично
обманывать нехорошо Подмигивание Я у себя специально создал базу и на этот раз проверил, все отлично находит... Это вы что-то у себя перемудрили... Вобщем код в студию!
21. LIME - 04 Июля, 2011 - 15:53:03 - перейти к сообщению
Саныч возможно...
посмотрите
тут работающий вариант с другим запросом
менял строку запроса на ваши варианты
Спойлер (Отобразить)
22. LIME - 04 Июля, 2011 - 15:54:41 - перейти к сообщению
вот вам и таблица что не создавать

 

Powered by ExBB FM 1.0 RC1