![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
товарищи, подскажите, пожалуйста, регулярное выражение (и вообще, можно ли сделать такое?
в БД хранится упакованный json'ом текст, надо извлечь те строки, которые имеют соответствующее совпадение. пример текста в ДБ table.field : {"numpass":2,"product":[{"ak":"\u0422\u042b","fio":"\u041f\u0435\u0442\u0440 \u041f\u0435\u0442\u0440\u043e\u0432","total":3000,"ticket":""},{"route":"KGD - MOW","datefly":"2012-02-01 12:30:00","fio":"\u041f\u0435\u0442\u0440\u0430 \u041f\u0435\u0442\u0440\u043e\u0432\u0430","total":2000,"ticket":""}]} пример искомого текста: петр требуется выбрать те строки, где есть совпадение ... "fio":"...петр..."... при этом, в fio может быть как \u041f\u0435\u0442\u0440 , так и латиница: {"numpass":1,"product":[{"ak":"UN","route":"DME - LED","datefly":"2012-09-26 19:10:00","fio":"Ivan Ivanovich"}]} в принципе, могу ещё до запроса на MySQL на php получить из кириллицы \u041f\u0435\u0442\u0440 как же она будет выглядеть регулярка в MySQL? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 2 Всего: 101 |
Это сообщение отредактировал(а) baldina - 14.8.2012, 17:15 |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 2 Всего: 101 |
Это сообщение отредактировал(а) baldina - 14.8.2012, 17:30 |
|||
|
||||
| bars80080 |
|
||||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
что-то она не до конца доведена:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\u043f\u0435\u0442\u0440").*?\""' at line 1 проблема вроде в кавычках, но стоит её устранить, система начинает ругаться иначе:
Got error 'repetition-operator operand invalid' from regexp Добавлено через 1 минуту и 48 секунд
Это сообщение отредактировал(а) bars80080 - 14.8.2012, 17:56 |
||||||
|
|||||||
| ksnk |
|
||||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
место этого должно получится вот так
все обратные слеши развояюццо можно простым replace сделать, можно preg_quote использовать, правда нужно потестировать ее на совместимость с mysql... -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
||||
|
|||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 2 Всего: 101 |
на mysql я её не пробовал
json_encode кавычки вставляет, не учел, сорри |
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
что-то оно всё равно не работает:
реальный запрос, как есть
error: Got error 'repetition-operator operand invalid' from regexp
|
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 14 Всего: 386 |
Возможно, нужно не удвоить, а учетверить слеши. Навроде как при использовании в обычных регулярках с ключиком e
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| bars80080 |
|
||||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
аналогично:
error: Got error 'repetition-operator operand invalid' from regexp Добавлено через 3 минуты и 36 секунд всё, решено. не хватало скобок:
ошибка исчезла. теперь надо добиться, чтобы он таки нашёл Добавлено через 6 минут и 43 секунды не фига не ищет, правда |
||||
|
|||||
| patap |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 893 Регистрация: 7.5.2005 Где: Украина, Зп Репутация: 3 Всего: 40 |
пропустили кавычку
"fio":(. -------------------- На боку кобура болталась, сзади шашка отцовская звякала. Впереди меня все хохотало, а позади все плакало (с) |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 9 Всего: 315 |
ага, именно в этом дело и было.
всё, теперь ок Добавлено через 3 минуты и 6 секунд правильный поиск - с удвоенными слэшами
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |