Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用包含冒号的正则表达式匹配字符串_Java - Fatal编程技术网

Java 使用包含冒号的正则表达式匹配字符串

Java 使用包含冒号的正则表达式匹配字符串,java,Java,我尝试匹配从不同文件解析的不同日期格式。一种日期格式是例如:“Thu,2009年11月12日14:17:44-0000” 当我尝试将这个字符串与第一个正则表达式匹配时,我得到了一个true结果,当我使用第二个正则表达式时,我得到false结果 [A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{2}.* (1. regex) [A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{2}:.* (2. regex) 在

我尝试匹配从不同文件解析的不同日期格式。一种日期格式是例如:“Thu,2009年11月12日14:17:44-0000”

当我尝试将这个字符串与第一个正则表达式匹配时,我得到了一个true结果,当我使用第二个正则表达式时,我得到false结果

[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{2}.*   (1. regex)
[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{2}:.*  (2. regex)

在我看来,两个正则表达式都应该匹配上述日期格式。我的失败在哪里?

您似乎忘记了4位数的年份,因此第二个正则表达式不正确


第一个正则表达式的最后一部分是匹配
2009
的前两个数字,然后是后面的所有数字。

我怀疑最后一部分“\s+\d{2}:.*”是匹配“14:”,但您忘记了年份。因此,解析器需要“:”但在2009年找到第二个零

你需要的是这样的东西:

[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\s+\\d{4}\\s+\\d{2}:.*  (2. regex)
(我想应该过去了:)

你忘记了那一年:

“[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3}\\p{Digit}{4}(\\p{Digit}{2}:){2}[0-9][0-9].”

您还可以使用不同的格式测试小时数