JUnit中的RegEx匹配时区

时间:2017-02-08 11:26:36

标签: java regex junit

所以我试图使用正则表达式来验证日期时间的时区部分,仅用于" GMT"或" UTC"部分。有效的String如下所示:

"Wed, 8 Feb 2016 11:20:00 [GMT]"

我尝试过以下但是没有用。我尝试过一系列不同的逃脱序列,但无济于事。

assertTrue(dateTime.getDateTime().matches("Wed, 8 Feb 2016 11:20:00 [\\w{3}]"));

我认为我遇到的问题是由于我需要将方括号视为regEx的一部分。

1 个答案:

答案 0 :(得分:3)

您需要转义[],因为[]表示用于查找匹配的列表,因此请使用Wed, 8 Feb 2016 11:20:00 \\[\\w{3}\\]

\\[\\w{3}\\]

\\[:匹配[字符

\\w{3}:匹配3次\\w\\w表示[a-zA-Z0-9_]

\\]:匹配]字符

    String date= "Wed, 8 Feb 2016 11:20:00 [GMT]";
    System.out.println(date.matches("Wed, 8 Feb 2016 11:20:00 \\[\\w{3}\\]"));

Oracle Regex Character Classes