从Python中的字符串中提取年份

我该如何解析该傻瓜。在python中提取年份:

'years since 1250-01-01 0:0:0'

答案应该是1250

回答:

有各种各样的方法可以实现,以下是几种选择:

  • dateutil“模糊”模式下的解析器:

    In [1]: s = 'years since 1250-01-01 0:0:0'

    In [2]: from dateutil.parser import parse

    In [3]: parse(s, fuzzy=True).year # resulting year would be an integer

    Out[3]: 1250

  • 具有 捕获组的 正则表达式:

    In [2]: import re

    In [3]: re.search(r”years since (\d{4})”, s).group(1)

    Out[3]: ‘1250’

  • 先用“自”分割,再用破折号分割:

    In [2]: s.split("since", 1)[1].split("-", 1)[0].strip()

    Out[2]: ‘1250’

  • 甚至可能被第一个破折号分割成第一个子字符串:

    In [2]: s.split("-", 1)[0][-4:]

    Out[2]: ‘1250’

后两个涉及更多的“活动部分”,根据输入字符串的可能变化,可能不适用。

以上是 从Python中的字符串中提取年份 的全部内容, 来源链接: utcz.com/qa/407348.html

回到顶部