有人能告诉我dateTimeString的正则表达式如下:“YYYY / MM / DD HH:MM:SS”[关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有人能告诉我dateTimeString的正则表达式如下:“YYYY / MM / DD HH:MM:SS”[关闭]相关的知识,希望对你有一定的参考价值。

另外,我真的很感激解释。对不起,但我一生中从未使用过正则表达式,几乎无法阅读它们。

答案
d{4}/d{2}/d{2}s+d{2}:d{2}:d{2}
  • d是一个数字
  • qazxsw poi是数字位数(前面的正则表达式部分)
  • {4}只是一个斜线
  • /只是一个冒号
  • :是任何空白
  • s是一个或多个空格(正面的正则表达式部分)

请注意,这可以用于快速初始检查,但您应该使用其他方法来检查完整日期格式,例如Rohit Jain或Jon Skeet所宣传的+

另一答案

正如其他人所指出的,日期时间是不规则的表达。仅通过正则表达式验证是不可能的。仅闰秒排除了这一点。你能做的最好是限制误报。但是,你消除的误报越多,表达式就越复杂。

对于时间组件,您可以使用它

SimpleDateFormat

  • ([2][0-3]|[0-1][0-9]|[1-9]):[0-5][0-9]:([0-5][0-9]|[6][0])意味着匹配x
  • [x]意味着这匹配来自a-z的任何字母
  • [a-z]意味着这匹配a或b
  • a|b将比赛分组 所以

(..)将匹配20-23或00-19或1​​-9

对于日期部分

([2][0-3]|[0-1][0-9]|[1-9])

你可以看到它变得非常大,我们仍然有很多误报。

把它放在一起

d{4}/([1][0-2]|[0][0-9])/([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9])

这将允许d{4}/([1][0-2]|[0][0-9])/([3][0-1]|[1-2][0-9]|[0][1-9]|[1-9]) ([2][0-3]|[0-1][0-9]|[1-9]):[0-5][0-9]:([0-5][0-9]|[6][0])在这么多级别上无效。

它也不允许0000231 01:59:60,可以通过用999212 01:59:59替换d{4}来弥补。

d+意味着1或更多。

我的正则表达式foo相当缺乏所以我总是去+寻求帮助

附:虽然日期时间通常为60秒60分24小时365天,但月球/太阳历不稳定。一些日历忽略了这一点,UTC没有,西方日历中最容易辨认的人工制品是在2月底大致每4年增加一个闰日。下一个最常见的人工制品是在不规则时期增加闰秒。这可以是正面的也可以是负面的,因此一分钟的长度可以在59-61秒之间。

以上是关于有人能告诉我dateTimeString的正则表达式如下:“YYYY / MM / DD HH:MM:SS”[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

开始使用正则表达式 [关闭]

数字之间数字的正则表达式

使用正则表达式的特定字符串验证

如何删除添加到文本字段的正则表达式?

使用正则表达式替代 HTML 解析

从 HTML 中提取正则表达式和字符串