2015-11-18 10 views
0

Привет я новичок в Regex, и я пытаюсь получить значение после того, как l_fix в следующем: JSONрегулярное выражение для JSON значение ключа

{ "id": "626307" ,"t" : ".INX" ,"e" : "INDEXSP" ,"l" : "2,050.59" ,"l_fix" : "2050.59" ,"l_cur" : "2,050.59" ,"s": "0" ,"ltt":"3:08PM EST" ,"lt" : "Nov 17, 3:08PM EST" ,"lt_dts" : "2015-11-17T15:08:33Z" ,"c" : "-2.60" ,"c_fix" : "-2.60" ,"cp" : "-0.13" ,"cp_fix" : "-0.13" ,"ccol" : "chr" ,"pcls_fix" : "2053.19" } 

прямо сейчас я использую \d[,](?:\d*\.)?\d+ однако это кажется бит, и я уверен, что это можно сделать лучше.

+0

Это вряд ли означает, что символ ведьмы допускается внутри «имен собственности» и «значений» – RiccardoC

+1

Язык? JavaScript, я полагаю. Почему регулярное выражение? – Diego

+3

*** Декодирование *** JSON в любой собственный массив/тип объекта, который имеет ваш язык выбора, и просто получить доступ к ключу ...!? – deceze

ответ

0

Регулярное выражение не похоже на то, что вам нужно, однако если вы хотите сделать это с помощью регулярного выражения, это может быть следующее: "l_fix"\s*:\s*"(.+?)". Затем в первой группе вы получите нужное значение.

See it working here

Кроме того, see this SO post about regex roups in matlab.

+0

Я тоже пробовал это, но я хочу только вернуть номер после 'l_fix', а не сам ключ. Я думал, что '?:' Сделал бы трюк, но это, похоже, не имеет значения. – Jason

+0

См. Сообщение SO, которое я связал. Вам нужны «токены» вместо «матч» – Diego

-1

Почему регулярное выражение, лучший способ использования парсера JSON. Пример в JavaScript:

var str = '{ "id": "626307" ,"t" : ".INX" ,"e" : "INDEXSP" ,"l" : "2,050.59" ,"l_fix" : "2050.59" ,"l_cur" : "2,050.59" ,"s": "0" ,"ltt":"3:08PM EST" ,"lt" : "Nov 17, 3:08PM EST" ,"lt_dts" : "2015-11-17T15:08:33Z" ,"c" : "-2.60" ,"c_fix" : "-2.60" ,"cp" : "-0.13" ,"cp_fix" : "-0.13" ,"ccol" : "chr" ,"pcls_fix" : "2053.19" }'; 
var parsedStr = JSON.parse(str); 
alert(parsedStr.l_fix); 

Другие языки также имеет JSON парсер.

+0

плохой ответ; в моем случае я пытаюсь разбирать файлы журналов. Я не хочу загружать каждую строку журнала, анализировать JSON, а затем находить нужные мне данные, для этого требуется много времени и памяти. Возможно использование регулярного выражения, и оно быстрее, и использует * меньше памяти *. –

+0

«Дело с файлом журнала» - это ваш случай. В этом вопросе не указывается файл журнала –