我该如何解析 foll.在python中提取年份:

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

答案应该是 1250

最佳答案

有各种各样的方法可以做到,这里有几个选项:

  • dateutil parser 处于“模糊”模式:
    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'
    
  • 由“since”和破折号分割:
    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 - 从python中的字符串中提取年份,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40121822/

    10-13 07:12