【问题标题】:Extract expected Date from String by using datetime使用日期时间从字符串中提取预期日期
【发布时间】:2019-11-19 17:52:20
【问题描述】:

字符串:- “今天是 2019 年 11 月 19 日。”

输出:- 2019 年 11 月 19 日

我试过这个:-

datetime.strptime(re.search((January|February|March|April|May|June|July|August|September|Octomber|November|December) \d{1,2}(th|st|rd), \d{4}",String).group(), "%B %d, %Y")

但它向我显示错误:-

ValueError:时间数据“2019 年 11 月 11 日”与格式“%B %d(th|st|rd), %Y”不匹配

谁能帮帮我,我错了。

【问题讨论】:

标签: python regex python-3.x datetime python-3.6


【解决方案1】:

datetime 格式不支持类似正则表达式的模式,因此您应该先构建一个固定格式的字符串进行解析。

您可以改用re.sub 来仅从字符串中提取月、日和年,并将它们重新组合成一个以空格分隔的字符串,然后再传递给datetime.strptime 进行解析:

datetime.strptime(re.sub(r'.*\b(January|February|March|April|May|June|July|August|September|Octomber|November|December) (\d{1,2})(?:th|st|rd), (\d{4})\b.*', r'\1 \2 \3', String), "%B %d %Y")

【讨论】:

    猜你喜欢
    • 2020-08-14
    • 2011-03-31
    • 1970-01-01
    • 2023-01-04
    • 2011-02-17
    • 2019-06-06
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    相关资源
    最近更新 更多