Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Символы [<>] в REGEXP (mysql-запрос)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
... REGEXP "<b>" ...

 
Подскажите пожалуйста как правильно задать символы > и < в регулярном выражении в запросе.
Экранирование \> не помогает.
 
Добавлено:
\x3e и 0x003E тоже работают
 
Добавлено:
не работают

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 03:24 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1
а кто вам сказал, что это нужно экранировать?

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 03:48 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Результат выполнения запроса ненулевой, если "\s", но если ">\s" - нулевой. А в текстовом поле хранится значение "b> ".

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 03:52 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1

Цитата:
А в текстовом поле хранится значение "b> "

может там, вместо >, записано &gt; ?
 
ну и потом, в данной ситуации может лучше будет просто LIKE '%<b>%'

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 03:56 27-09-2015 | Исправлено: Mavrikii, 03:57 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет, именно >
 
Добавлено:
И "&gt;\s" не работает

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 03:56 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1
<> не являются символами, которые требуют экранирования.
так что там, скорее всего, используется что то другое или есть непечатаемые символы.
 
ps: и я проверил у себя - проблем нет.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:00 27-09-2015 | Исправлено: Mavrikii, 04:01 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет, там все намного сложнее.
 
Добавлено:
Могу даже скриншот сделать

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:00 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1

Цитата:
Могу даже скриншот сделать

содержимое проверяйте. только что проверил у себя на полях с html контентом - выбирает

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:01 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В общем-то все так и есть как я написал

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:02 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1
показывайте целиком запрос, содержимое полей. еще раз повторю - у меня все нормально работает.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:03 27-09-2015 | Исправлено: Mavrikii, 04:03 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 
<img align="middle" src="http://www.musicopt.ru/uploads/posts/752_s.jpg" title="Cannibal Corpse - Monolith of Death Tour (1996-1997)" alt="Cannibal Corpse - Monolith of Death Tour (1996-1997)" /><br/><b>Исполнитель:</b> Cannibal Corpse<br/><b>Жанр:</b> Death Metal  
 

 

Код:
 
SELECT * FROM `dle_post` WHERE short_story REGEXP ">\s*[Dd]eath([^a-z])" AND category=''
 

 
Добавлено:
Если убрать > в начале, запись обнаружится

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:07 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1

Цитата:
Если убрать > в начале, запись обнаружится

потому, что может быть срабатывает в другом месте строки. у вас тут 3 места, где регулярка без > может сработать. попробуйте вместо \s* указать [[:space:]]*

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:13 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Точно, но есть и другие записи, в которых такое место только одно).
А почему с \s не работает?

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:17 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1

Цитата:
с \s не работает?

потому, что есть символы, которые не входят в этот набор.
\s это, обычно, пробел, таб и, вроде, \r, \n
в случае использования различных редакторов, особенно в уникоде, может быть много чего еще, что явно не отображается.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:23 27-09-2015 | Исправлено: Mavrikii, 04:24 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт сохранял пробел. В пхп " ".
 
Добавлено:

Цитата:
 
 в случае использования различных редакторов, особенно в уникоде, может быть много чего еще, что явно не отображается.
 

 
Зашибись.
Огромное спасибо за помощь.

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:24 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1

Цитата:
В пхп " ".

не показатель. нужно смотреть код символа, представляющего это пустое место.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:26 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так в базе оно тоже не отображается?

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:26 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1

Цитата:
Так в базе оно тоже не отображается?

с чего бы? оно отображается так, как должно отображаться. для правильного понимания того, что там, нужно смотреть код символов.
примеры разнообразий -- https://www.cs.tut.fi/~jkorpela/chars/spaces.html

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:27 27-09-2015 | Исправлено: Mavrikii, 04:28 27-09-2015
a1eksei1

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кажется что-то не так. Было 30 результатов, а после добавления перед [[:space:]] символа БОЛЬШЕ стало всего 8

Всего записей: 89 | Зарегистр. 26-05-2015 | Отправлено: 04:31 27-09-2015
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
a1eksei1
не могу ничего сказать не видя как и из чего выбирается.

Всего записей: 15040 | Зарегистр. 20-09-2014 | Отправлено: 04:33 27-09-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Символы [<>] в REGEXP (mysql-запрос)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru