2012-12-18 123 views
0

嗨獲得的GUID,我需要在Java語法一個正則表達式表示將從以下JSON返回GUID列表正則表達式從JSON

{"status":0,"StressTest":[{"User":[ 
{"token":"0F6B271C-3D7B-4473-9B20-67E1B79778FD"}, 
{"token":"0FC5764C-37F3-4348-8AF9-B6A84EA578E1"}, 
{"token":"22ADCBA3-13FB-439C-BF0C-F383B87670DB"}, 
{"token":"22B5D91F-5F49-4F60-9165-5DA5241C0F37"}, 
{"token":"27D91B27-C2FA-4829-8434-10DF496EF139"}, 
{"token":"27DDD239-279C-46A1-91C7-19525624A495"}]}]}  

所以我回來只是GUID的

感謝所有指針

+3

[你有什麼嘗試?](http://mattgemmell.com/2008/12/08/what-have-you-tried/) – alestanis

+3

現在,你知道它是'JSON',你爲什麼要搜索'Regex'來解析它?使用一些JSON解析器。 –

+0

我在jmeter的foreach循環中使用它,所以不能使用json解析器。我試過這個「標記」:「(。+?)」,但沒有運氣。 – Jules

回答

0

您可以使用正則表達式來完成此操作,但使用JSON解析器會更好。如果你仍然想使用正則表達式,這個應該工作:

[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12} 

至少它可以在您的測試數據中http://regexpal.com/

0

嘗試

String s = "{\"status\":0,\"StressTest\":[{\"User\":[" 
     + "{\"token\":\"27D91B27-C2FA-4829-8434-10DF496EF139\"}" + 
     "{\"token\":\"27DDD239-279C-46A1-91C7-19525624A495\"}]}]}"; 
String[] a = s.split(".+\\[\\{\"User\":\\[|\\]}\\]}")[1].replaceAll("\"", "").replaceAll("\\{token:", "").split("}"); 
System.out.println(Arrays.toString(a)); 

輸出

[27D91B27-C2FA-4829-8434-10DF496EF139, 27DDD239-279C-46A1-91C7-19525624A495]