需要正则表达式大师!
我有一个来自服务器的可变时间戳,我需要找到每次使用哪种格式。我尝试过实现正则表达式格式,但它们不起作用。我对正则表达式模式相当陌生,但我仍然尝试过自己处理它们,或者寻找一个特定的示例,但找不到,所以我问你。
来自服务器的格式可能如下所示:
“2015-02-23 15:27:31 世界标准时间”
或
“2015-01-22T19:38:40Z”
这里是查找格式的代码:
private static String getFormat(String time) {
String firstRegEx = "^\\d{4}-\\d{2}-\\d{2}\'T+\'\\d{2}:\\d{2}:\\d{2}\'Z\'$";
String secondRegEx = "^\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}\\s\\w{3}$";
if (time.toLowerCase().matches(firstRegEx)) {
return firstRegEx;
} else if (time.toLowerCase().matches(secondRegEx)) {
return secondRegEx;
}
return null;
}
你能看看我的正则表达式模式并告诉我我做错了什么吗?
最佳答案
首先,您必须删除字符 T
和 Z
周围的单引号,然后调用 toLowercase()
,这将可以反转 T
到 t
和 Z
到 z
。删除它:
private static String getFormat(String time) {
String firstRegEx = "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}Z$";
String secondRegEx = "^\\d{4}-\\d{2}-\\d{2}\\s\\d{2}:\\d{2}:\\d{2}\\s\\w{3}$";
if (time.matches(firstRegEx)) {
return firstRegEx;
} else if (time.toLowerCase().matches(secondRegEx)) {
return secondRegEx;
}
return null;
}
关于java - SimpleDateFormat 正则表达式格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690104/