【问题标题】:Extract date from string in python从python中的字符串中提取日期
【发布时间】:2016-09-08 15:26:52
【问题描述】:

如何从“Campaign on 01.11.2015”中提取“20151101”(作为字符串)?

我读过这个: Extracting date from a string in Python .但是从 Match 对象转换为字符串时,我卡住了。

【问题讨论】:

    标签: python string date slice


    【解决方案1】:

    通过上述帖子中的细微调整,您可以让它工作。

    import re
    from datetime import datetime
    
    text = "Campaign on 01.11.2015"
    
    match = re.search(r'\d{2}.\d{2}.\d{4}', text)
    date = datetime.strptime(match.group(), '%d.%m.%Y').date()
    print str(date).replace("-", "")
    20151101
    

    【讨论】:

      【解决方案2】:

      这是一种方法,使用re.sub()

      import re
      
      s = "Campaign on 01.11.2015"
      
      new_s = re.sub(r"Campaign on (\d+)\.(\d+)\.(\d+)", r'\3\2\1', s)
      
      print new_s
      

      另一个,使用re.match()

      import re
      
      s = "Campaign on 01.11.2015"
      
      match = re.match(r"Campaign on (\d+)\.(\d+)\.(\d+)", s)
      new_s = match.group(3)+match.group(2)+match.group(1)
      
      print new_s
      

      【讨论】:

        【解决方案3】:

        一个更健壮的正则表达式:.*?\b(\d{2})\.(\d{2})\.(\d{4})\b

        nn/nn/nnnn 带字边界的格式)

        替换字符串:\3\2\1

        demo

        【讨论】:

          【解决方案4】:

          让我们疯狂吧:D

                 "".join(reversed(a.split()[-1].split(".")))
          

          【讨论】:

            【解决方案5】:

            具有列表的魔力。

            In [15]: ''.join(a.split()[-1].split('.')[::-1])
            Out[15]: '20151101'
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-02-17
              • 2020-08-20
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多