java - SimpleDateFormat 正则表达式格式

标签 java android regex

需要正则表达式大师!

我有一个来自服务器的可变时间戳,我需要找到每次使用哪种格式。我尝试过实现正则表达式格式,但它们不起作用。我对正则表达式模式相当陌生,但我仍然尝试过自己处理它们,或者寻找一个特定的示例,但找不到,所以我问你。

来自服务器的格式可能如下所示:

“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;
}

你能看看我的正则表达式模式并告诉我我做错了什么吗?

最佳答案

首先,您必须删除字符 TZ 周围的单引号,然后调用 toLowercase() ,这将可以反转 TtZz。删除它:

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/

相关文章:

java - 了解事件处理程序完成后如何执行某些操作、Android、Firebase

java - 从另一个类方法 setContentView

java - Android + 自定义ListView

android - 你可以使用 Android 作为 NFC 标签吗

android - 在 HTC Rezound 上且仅在 4g 上尝试连接到服务器时返回未知主机异常

json - JQ - 替换完整 json 中的字符串

java - 使用 JSON、jQuery、AJAX 和 Java 返回多个值

java - 在一个类中有一个具有相同类的字段

用于分隔字符串和查找字段的 Java 模式

用于验证地址的 JavaScript 正则表达式