因此,我正试图仅使用“ GMT”或“ UTC”部分的正则表达式来验证dateTime的时区部分。有效的字符串如下所示:

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


我尝试了以下方法,但无法正常工作。我尝试了一堆不同的转义序列,但无济于事。

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


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

最佳答案

您需要转义[],因为[]代表用于查找匹配项的列表,因此请像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

10-06 01:06