正则表达式从JSON获取GUID

时间:2012-12-18 12:54:12

标签: java regex

我需要在java语法中使用正则表达式,它将返回以下json中的guid列表

{"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"}]}]}    

所以我回到了guids

感谢所有指针

2 个答案:

答案 0 :(得分: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/

中的测试数据

答案 1 :(得分: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]