【发布时间】:2020-02-06 07:39:51
【问题描述】:
我有以下 JSON:
[
{
"": "",
"substituted_restday": "2020-02-01",
"original_restday": "2020-02-08",
"id": "15d13f70-c0a852c0-3a925f13-6dca1982",
"_UNIQUEKEY_": "15d1592a-c0a852c0-3a925f13b7c65023",
"parentId": ""
},
{
"": "",
"substituted_restday": "2020-02-03",
"original_restday": "2020-02-09",
"id": "15d14d55-c0a852c0-3a925f13-727b70af",
"_UNIQUEKEY_": "15d1592a-c0a852c0-3a925f13-3711a584",
"parentId": ""
}
]
我想从“submitted_restday”中提取“日期”,即 2020-02-01 和 2020-02-03。
我有如下代码,但结果不好:
Pattern pattern = Pattern.compile("((\"substituted_restday\":\")[0-9-]+)");
Matcher matcher = pattern.matcher(JSON);
System.out.println(matcher.find());
if (matcher.find()){
System.out.println(matcher.group(0));
System.out.println(matcher);
System.out.println("group count:" + matcher.groupCount());
for (int i = 0; i <= matcher.groupCount(); i++) {
System.out.println(i + ":" + matcher.group(i));
}
}
我可以看到“matcher.find()”是真的。但是 matcher.group 没有价值。请帮忙。
【问题讨论】:
-
在 JSON-String 中,被替换的休息日之后有一个空格,并且日期在左右两边都有引号。我在你的正则表达式中想念它们。