Нужна помощь по регурке

Openman

Новичок
Регистрация
10.05.2015
Сообщения
7
Благодарностей
0
Баллы
1
Всем привет. Тут у меня одна проблемка возникла...
Нужно вытащить значение ID только из "type":"rubric". Вот текст (это json):
Код:
{"meta":{"code":200},"result":{"total":27,"items":[{"id":"1266757654287659","type":"general_rubric","name":"Аварийные \/ справочные \/ экстренные службы","alias":"avarijjnye_spravochnye_ehkstrennye_sluzhby","org_count":159,"branch_count":173,"rubrics":[{"id":"1266757654282383","type":"rubric","name":"Пожарная охрана","alias":"pozharnaya_okhrana","parent_id":"1266757654287659","org_count":31,"branch_count":32},{"id":"1266757654282391","type":"rubric","name":"Справочно-информационные услуги","alias":"spravochno_informacionnye_uslugi","parent_id":"1266757654287659","org_count":17,"branch_count":23},{"id":"1266757654282467","type":"rubric","name":"Скорая медицинская помощь","alias":"skoraya_medicinskaya_pomoshh","parent_id":"1266757654287659","org_count":1,"branch_count":3},{"id":"1266757654282947","type":"rubric","name":"Управление ГО и ЧС","alias":"upravlenie_go_i_chs","parent_id":"1266757654287659","org_count":10,"branch_count":11},{"id":"1266757654282362","type":"rubric","name":"Аварийные службы","alias":"avarijjnye_sluzhby","parent_id":"1266757654287659","org_count":22,"branch_count":22},{"id":"1266757654292107","type":"rubric","name":"Эвакуация автомобилей","alias":"ehvakuaciya_avtomobilejj","parent_id":"1266757654287659","org_count":55,"branch_count":59},{"id":"1266757654283884","type":"rubric","name":"Службы спасения \/ экстренного вызова","alias":"sluzhby_spaseniya_ehkstrennogo_vyzova","parent_id":"1266757654287659","org_count":9,"branch_count":11},{"id":"1266757654282957","type":"rubric","name":"Телефоны доверия","alias":"telefony_doveriya","parent_id":"1266757654287659","org_count":17,"branch_count":17},{"id":"1266757654298422","type":"rubric","name":"Службы аварийных комиссаров","alias":"sluzhby_avarijjnykh_komissarov","parent_id":"1266757654287659","org_count":3,"branch_count":3}]}
Создал вот такую регулярку, ну только вот работает плохо, не выполняет своей задачи:
Код:
(?<=\{"id":").*?(?=","type":"rubric","name":)
Что нужно в ней исправить?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 332
Благодарностей
9 086
Баллы
113
Всем привет. Тут у меня одна проблемка возникла...
Нужно вытащить значение ID только из "type":"rubric". Вот текст (это json):
Код:
{"meta":{"code":200},"result":{"total":27,"items":[{"id":"1266757654287659","type":"general_rubric","name":"Аварийные \/ справочные \/ экстренные службы","alias":"avarijjnye_spravochnye_ehkstrennye_sluzhby","org_count":159,"branch_count":173,"rubrics":[{"id":"1266757654282383","type":"rubric","name":"Пожарная охрана","alias":"pozharnaya_okhrana","parent_id":"1266757654287659","org_count":31,"branch_count":32},{"id":"1266757654282391","type":"rubric","name":"Справочно-информационные услуги","alias":"spravochno_informacionnye_uslugi","parent_id":"1266757654287659","org_count":17,"branch_count":23},{"id":"1266757654282467","type":"rubric","name":"Скорая медицинская помощь","alias":"skoraya_medicinskaya_pomoshh","parent_id":"1266757654287659","org_count":1,"branch_count":3},{"id":"1266757654282947","type":"rubric","name":"Управление ГО и ЧС","alias":"upravlenie_go_i_chs","parent_id":"1266757654287659","org_count":10,"branch_count":11},{"id":"1266757654282362","type":"rubric","name":"Аварийные службы","alias":"avarijjnye_sluzhby","parent_id":"1266757654287659","org_count":22,"branch_count":22},{"id":"1266757654292107","type":"rubric","name":"Эвакуация автомобилей","alias":"ehvakuaciya_avtomobilejj","parent_id":"1266757654287659","org_count":55,"branch_count":59},{"id":"1266757654283884","type":"rubric","name":"Службы спасения \/ экстренного вызова","alias":"sluzhby_spaseniya_ehkstrennogo_vyzova","parent_id":"1266757654287659","org_count":9,"branch_count":11},{"id":"1266757654282957","type":"rubric","name":"Телефоны доверия","alias":"telefony_doveriya","parent_id":"1266757654287659","org_count":17,"branch_count":17},{"id":"1266757654298422","type":"rubric","name":"Службы аварийных комиссаров","alias":"sluzhby_avarijjnykh_komissarov","parent_id":"1266757654287659","org_count":3,"branch_count":3}]}
Создал вот такую регулярку, ну только вот работает плохо, не выполняет своей задачи:
Код:
(?<=\{"id":").*?(?=","type":"rubric","name":)
Что нужно в ней исправить?
(?<="id":").*?(?=",")

upload_2015-5-11_0-39-7.png
 

Openman

Новичок
Регистрация
10.05.2015
Сообщения
7
Благодарностей
0
Баллы
1
Спасибо sergodjan66. Но вы, к сожалению, не решили мою проблему. Мне нужно значение ID только из типа:"rubric".
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
PHP:
(?<=\{"id":")[0-9]+(?=","type":"rubric","name":)
reg.png


может так пойдет ?
 

Openman

Новичок
Регистрация
10.05.2015
Сообщения
7
Благодарностей
0
Баллы
1
Спасибо,Yumza! Если не сложно, вы можете расшифровать регулярное выражение? Мне для общего развития.
 

Yumza

Client
Регистрация
09.05.2015
Сообщения
24
Благодарностей
8
Баллы
3
простите https://ru.wikibooks.org/wiki/Регулярные_выражения

там все доступно описано

по нашему вопросу так :

[0-9]+

между [ ] указываем символы или их диапазоны как например 0-9 это все цифры символ "-" нужно указывать первым, например если нам нужны цифры и тире как в номере телефона тогда [-0-9]+

"+" - означает что должен быть хотябы один один символ из указаного списка, это количество нужных повторений. Если поставить [0-9]* это означает сколько угодно или ничего. Если нужно точное количество повторении то можно использовать {}, например [0-9]{3,5}, означает последовательность цифр длиной от 3 до 5 цифр.
 

Openman

Новичок
Регистрация
10.05.2015
Сообщения
7
Благодарностей
0
Баллы
1
Спасибо!
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)