如何在java中验证字符串匹配所需的模式?

时间:2014-12-18 19:09:13

标签: java regex

我有一个csv文件,其中有一个日期和时间的字符串表示

2014-05-11T09:00:01.772401

我正在尝试验证它遵循此格式。我的想法是使用正则表达式来匹配类似的模式 4个数字后跟一个 - 2个数字后跟一个 - 依此类推等等,但我对正则表达式不够熟悉,无法构建它。

使用正则表达式验证匹配特定模式的字符串是否最佳,或者我应该使用其他内容。如果正则表达式是你可以提供正则表达式并解释Char在验证过程中代表什么。

此外,任何可以更好地解释正则表达式模式匹配的链接都将非常感激。

1 个答案:

答案 0 :(得分:2)

您可以使用SimpleDateFormat来确定字符串表示是否有效。

来自你的字符串

2014-05-11T09:00:01.772401

模式似乎是:yyyy-MM-dd'T'hh:mm:ss.SSSSSS

使用示例:

public static void main(String[] args) {
    String t = "2014-05-11T09:00:01.772401";
    final String pattern = "yyyy-MM-dd'T'hh:mm:ss.SSSSSS";
    SimpleDateFormat sdf = new SimpleDateFormat(pattern);
    try {
        sdf.parse(t);
        System.out.println("Valid");
    } catch(java.text.ParseException e) {
        System.out.println("Invalid format");
    }
}