| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > регулярка |
| Автор: bars80080 14.8.2012, 16:26 |
| товарищи, подскажите, пожалуйста, регулярное выражение (и вообще, можно ли сделать такое? в БД хранится упакованный 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 14.8.2012, 17:14 | ||
|
| Автор: baldina 14.8.2012, 17:29 | ||
|
| Автор: bars80080 14.8.2012, 17:56 | ||||||
что-то она не до конца доведена:
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 секунд
|
| Автор: baldina 14.8.2012, 19:14 |
| на mysql я её не пробовал json_encode кавычки вставляет, не учел, сорри |
| Автор: bars80080 28.8.2012, 11:03 | ||||
| что-то оно всё равно не работает: реальный запрос, как есть
error: Got error 'repetition-operator operand invalid' from regexp
|
| Автор: ksnk 28.8.2012, 11:19 |
| Возможно, нужно не удвоить, а учетверить слеши. Навроде как при использовании в обычных регулярках с ключиком e |
| Автор: bars80080 28.8.2012, 11:25 | ||||
аналогично:
error: Got error 'repetition-operator operand invalid' from regexp Добавлено через 3 минуты и 36 секунд всё, решено. не хватало скобок:
ошибка исчезла. теперь надо добиться, чтобы он таки нашёл Добавлено через 6 минут и 43 секунды не фига не ищет, правда |
| Автор: patap 28.8.2012, 18:35 |
| пропустили кавычку "fio":(. |
| Автор: bars80080 29.8.2012, 10:38 | ||
| ага, именно в этом дело и было. всё, теперь ок Добавлено через 3 минуты и 6 секунд правильный поиск - с удвоенными слэшами
|