这个问题也许是重复的,但是我没有找到任何确切的解决方案。我有这种类型的字符串,其中包括日期和时间。

"check_in": "10/25/2019 14:30"


我需要从中提取一个小时,但这并不总是有效的格式。到目前为止,我已经尝试过该模式,但是它包含“:”字符。


  \ d +?(:)
  
  (\ d + :)
  
  (\ d +)*:

最佳答案

正则表达式并不总是处理代表日期的字符串的最佳方法,尤其是在您不能依赖输入格式保持一致的情况下。改用专门的解析器:

>>> from dateutil import parser
>>> parser.parse("10/25/2019 14:30").hour
14
>>> parser.parse("10/25/2019 2:30 PM").hour
14
>>> parser.parse("2019-10-25T143000").hour
14


模块dateutil不在标准库中,但值得下载。

10-05 18:04