因此,我正试图仅使用“ 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