Regex 多分隔符日期正则表达式

Regex 多分隔符日期正则表达式,regex,validation,Regex,Validation,我正在创建一个正则表达式来验证多种格式的日期,我发现了大量关于如何使用以下格式处理日期的信息: 06/19/2013 06-19-2013 06 19 2013 06.19.2013 但我似乎无法让正则表达式处理 06192013 这是我的正则表达式: ((0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.]((19|20)?[0-9]{2} 如何处理没有分隔符的日期?只需将其设置为: 为什么不使用DateTime.TryParseE

我正在创建一个正则表达式来验证多种格式的日期,我发现了大量关于如何使用以下格式处理日期的信息:

06/19/2013
06-19-2013
06 19 2013
06.19.2013
但我似乎无法让正则表达式处理

06192013
这是我的正则表达式:

((0?[1-9]|1[012])[- \/.](0?[1-9]|[12][0-9]|3[01])[- \/.]((19|20)?[0-9]{2}
如何处理没有分隔符的日期?

只需将其设置为:


为什么不使用
DateTime.TryParseExact()


您只需将
添加到
[-\/.]
中,它就变成了
[-\/.]?
。由此得出以下结论:您应该学习regex的基础知识!您的正则表达式缺少一个右括号。顺便说一句,格式顺序可能是-如果不是美国的,特别是在虚线处-
DD-MM-YYYY
(例如:
20.6.2013
)。您可能还想允许使用国际标准格式
YYYY-MM-DD
@Josay我们的SO同事写了一些很棒的东西,以a:DAlso为例格雷戈里缩短了10天,使日历与季节同步。因此,当新日历投入使用时,自尼西亚会议以来13个世纪累积的错误被删除了10天。儒略历的最后一天是1582年10月4日星期四,接着是公历的第一天,1582年10月15日星期五(平日周期不受影响)。“您仍然可以获取与其中一个已删除日期对应的无效日期;-)OP没有提到他正在使用的语言,因此这可能是无关紧要的。如果他们使用.NET,这会容易得多。
(0?[1-9]|1[012])[- \/.]?(0?[1-9]|[12][0-9]|3[01])[- \/.]?(19|20)?[0-9]{2}
                       ^                                ^