正则表达式无效
问题描述:
这是我想从中删除日期值的json。正则表达式无效
{
"mCheckInTime": null,
"mCheckOutTime": null,
"mLateArrivalTime": "2017-09-14T18:00:00.000+05:00",
"mNumberOfBeds": 0
}
而这一次是coresponding正则表达式
String valueRegex = "^(\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\+\\d{2}:\\d{2})$";
String message = message.replaceAll(valueRegex, "");
当我运行这段代码,它什么都不做。 有人请帮我解决这个问题,这里有什么问题?
答
您需要删除^
(开始)和$
(完)从你的正则表达式元字符:
String message = "{\n" +
" \"mCheckInTime\": null,\n" +
" \"mCheckOutTime\": null,\n" +
" \"mLateArrivalTime\": \"2017-09-14T18:00:00.000+05:00\",\n" +
" \"mNumberOfBeds\": 0\n" +
" }";
String regex = "\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\+\\d{2}:\\d{2}";
System.out.println(message.replaceAll(regex, ""));
我们得到以下的输出:
{
"mCheckInTime": null,
"mCheckOutTime": null,
"mLateArrivalTime": "",
"mNumberOfBeds": 0
}
+0
非常感谢罗比,它帮助。 –
答
这个怎么样的解决方案?
StringBuilder sb = new StringBuilder();
sb.append("{");
sb.append("\"mCheckInTime\":null,");
sb.append("\"mCheckOutTime\":null,");
sb.append("\"mLateArrivalTime\":\"2017-09-14T18:00:00.000+05:00\",");
sb.append("\"mNumberOfBeds\":0");
sb.append("}");
String valueRegex = "(\"\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}\\+\\d{2}:\\d{2}\")";
String message = sb.toString().replaceAll(valueRegex, "null");
结果将是:
{"mCheckInTime":null,"mCheckOutTime":null,"mLateArrivalTime":null,"mNumberOfBeds":0}
不是你重新定义'字符串消息= message.replaceAll(valueRegex, “”);'?不应该编译器哭泣? – Mritunjay
@Mritunjay多数民众赞成在他可能意味着什么'代码什么都不做'大声笑 – XtremeBaumer