我尝试匹配从不同文件解析的不同日期格式。一种日期格式例如是:“星期四,2009年11月12日14:17:44 -0000”
当我尝试将此字符串与第一个正则表达式匹配时,我得到一个真实的结果,当我使用第二个时,我得到了错误。
[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)
在我看来,两个正则表达式都应该与上述日期格式相匹配。我的失败在哪里?
答案 0 :(得分:1)
你似乎忘记了4位数的年份,因此第二个正则表达式并不正确。
第一个正则表达式的最后一部分是匹配2009
的前两位数字,然后匹配后面的所有内容。
答案 1 :(得分:1)
我怀疑最后一部分“\ 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)
(我认为应该通过:))
答案 2 :(得分:0)
您忘记了年:
"[A-Za-z]{3},\\s+\\d{2}\\s+[A-Za-z]{3} \\p{Digit}{4} (\\p{Digit}{2}:){2}[0-9][0-9].*";
您还可以用不同的格式测试小时。