Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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_Regex - Fatal编程技术网

Java 正则表达式检查日期和时间

Java 正则表达式检查日期和时间,java,regex,Java,Regex,如何编写正则表达式以检查以下格式“DD-MM-YYYY HH:MM AM”或“DD-MM-YYYY HH:MM”的给定格式是否只有日期/时间或两者都有 我不知道怎么做。像这样的事情?未经测试 \b(\d{1,2}\-\d{1,2}-\d{4} \d{1,2}\:\d{1,2}( (AM|PM))?)\b 使用此正则表达式\d{2}-\d{2}-\d{4}\s\d{2}:\d{2}(\s(A | p)M)查看并管理“dd-MM-yyy-hh:MM”: 你让我进入了闰年。你从未回答过我在上一篇文章

如何编写正则表达式以检查以下格式“DD-MM-YYYY HH:MM AM”或“DD-MM-YYYY HH:MM”的给定格式是否只有日期/时间或两者都有


我不知道怎么做。

像这样的事情?未经测试

\b(\d{1,2}\-\d{1,2}-\d{4} \d{1,2}\:\d{1,2}( (AM|PM))?)\b

使用此正则表达式
\d{2}-\d{2}-\d{4}\s\d{2}:\d{2}(\s(A | p)M)
查看并管理
“dd-MM-yyy-hh:MM”


你让我进入了闰年。

你从未回答过我在上一篇文章中提出的问题:为什么要使用正则表达式?我肯定会有上千个答案告诉你使用“^\d{2}…”,但这是一种注定要失败的方法。您将如何防止像55:98 pm这样的愚蠢输入,或者验证该日期对于给定月份是否有效?你打算如何应对像闰年这样的极端情况?你今天已经问了三次基本相同的问题,我看不到多少证据表明你使用了社区已经提供的信息。因此,我投了反对票。你必须和我们一起工作。“这是要求”不是一个很好的解释。这是一个家庭作业问题,需要使用正则表达式来证明对工具的掌握吗?如果是这样的话,那么请把你的问题标记为家庭作业。除了这个匹配像59-36-0000 43:54这样的废话。但是如果目标是在文本中查找日期,这就可以了。。。我在现实生活中从未见过这样的事情。如果这是一个作业,他们可能会像这样测试输入是的…一个公平点。虽然如果用它从非结构化文本中提取类似日期的子字符串,我建议使用
\b
而不是
^$
。如果我输入45作为日期呢?如果我在一个只有30天的月内输入31,会怎么样?如果我在非闰年中输入29/02会怎样?这种方法的问题是无穷无尽的……如果您必须在之后调用DateTime.TryParse来确定它是否是有效的日期,那么使用正则表达式有什么意义?
if (myString.endsWith("AM") {
    // use "dd-MM-yyy hh:mm"
} else {
   // use "dd-MM-yyy HH:mm"
}
^((0[1-9]|[12][0-9]|3[01])-(0[1-9]|1[012])-\d{4} (20|21|22|23|[01]\d|\d)(([:][0-5]\d){1,2})( (AM|PM))?)$