2012-08-10 32 views
0

我有一個我想與包含對象像正則表達式

... 
{ 
"Id":"01", 
"Subject":"Sub", 
.... 
"Status":"Completed" 
... 
}, 
{ 
"Id":"02", 
"Subject":"Sub", 
.... 
"Status":"Waiting" 
... 
} 

數組的正則表達式來解析JSON響應,我想有等待狀態的對象的ID。

當我與"Id": "(.+?)",[\s\S]+?"Subject": "Sub",[\s\S]+?"Status": "Waiting";解析它匹配從「等待」到第一個「Id」(向後);當然,我想要等待的對象的Id。

任何幫助?

+0

是JMeter的JSON能力的? – rollstuhlfahrer 2012-08-10 06:43:00

回答

1

試試這個:

{\s*"Id":"(\d+)"[^}]+"Status":"Waiting"\s*} 
0

試試這個:

(?s)"Id":\s*"([^"]+)[^}]*?"Status":\s*"Waiting" 

如果沒有嵌套{}性能之間ID和狀態的它將工作。

0

如果您可以使用Json解析器,請使用它。

只要沒有嵌套括號,這將工作。

{[^{}]*Id":"(\d+)[^{}]*\s"Status":"Waiting" 

看到它here on Regexr

你表達

"Id": "(.+?)",[\s\S]+?"Subject": "Sub",[\s\S]+?"Status": "Waiting" 
             ^^^^^^^^ 
             fails here 

那部分從第一"Sub",匹配任何東西,直到它找到的第一個"Status": "Waiting"