Regex 用于捕获两种不同日期时间格式的正则表达式

Regex 用于捕获两种不同日期时间格式的正则表达式,regex,python-3.x,datetime,Regex,Python 3.x,Datetime,我有一个文件,其中有两种不同格式的日期: 2019-12-15-11-52 20191215.0900 我想用Python编写一个正则表达式来捕获这两个表达式。 我想出了下面的正则表达式 \d{4}-?\d{2}-?\d{2}[\.\124; \-]\ d{2}-?\d{2} 我在下面的站点上测试了上述正则表达式,它似乎工作正常: 我想知道是否有更简单的正则表达式来做同样的事情,并且实际的正则表达式字符串是否会影响Python正则表达式匹配的性能。您的正则表达式很简单。请注意,它也可能匹配

我有一个文件,其中有两种不同格式的日期:

  • 2019-12-15-11-52
  • 20191215.0900
我想用Python编写一个正则表达式来捕获这两个表达式。 我想出了下面的正则表达式

\d{4}-?\d{2}-?\d{2}[\.\124; \-]\ d{2}-?\d{2}

我在下面的站点上测试了上述正则表达式,它似乎工作正常:


我想知道是否有更简单的正则表达式来做同样的事情,并且实际的正则表达式字符串是否会影响Python正则表达式匹配的性能。

您的正则表达式很简单。请注意,它也可能匹配字符串,如
2019-12-15.11-52
2019-1215.0900
,并且不清楚您的要求是什么。最好将每种格式具体匹配为一种替代
\d{4}(\d{2}{4}\d{8}.\d{4}
\d{4}\d:{4}\d:{4}\d}与非
\d}4}d{4}d}*[-\d{2}]{4}
适合您的需要?或者使用分隔符的反向引用进行更精确的匹配,作为下一步,将匹配项解析为日期
\b\d{4}(-?\d{2}\1\d{2}(?:\.\d{4}\124;\ 1\d{2}\1\d{2})\b