zoukankan      html  css  js  c++  java
  • Python正则表达式匹配日期与时间

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    __author__ = 'Randy'
    import re
    from datetime import datetime
    
    test_date = '他的生日是2016-12-12 14:34,是个可爱的小宝贝.二宝的生日是2016-12-21 11:34,好可爱的.'
    
    test_datetime = '他的生日是2016-12-12 14:34,是个可爱的小宝贝.二宝的生日是2016-12-21 11:34,好可爱的.'
    
    # date
    mat = re.search(r"(d{4}-d{1,2}-d{1,2})",test_date)
    print mat.groups()
    # ('2016-12-12',)
    print mat.group(0)
    # 2016-12-12
    
    date_all = re.findall(r"(d{4}-d{1,2}-d{1,2})",test_date)
    for item in date_all:
        print item
    # 2016-12-12
    # 2016-12-21
    
    # datetime
    mat = re.search(r"(d{4}-d{1,2}-d{1,2}sd{1,2}:d{1,2})",test_datetime)
    print mat.groups()
    # ('2016-12-12 14:34',)
    print mat.group(0)
    # 2016-12-12 14:34
    
    date_all = re.findall(r"(d{4}-d{1,2}-d{1,2}sd{1,2}:d{1,2})",test_datetime)
    for item in date_all:
        print item
    # 2016-12-12 14:34
    # 2016-12-21 11:34
    ## 有效时间
    
    # 如这样的日期2016-12-35也可以匹配到.测试如下.
    test_err_date = '如这样的日期2016-12-35也可以匹配到.测试如下.'
    print re.search(r"(d{4}-d{1,2}-d{1,2})",test_err_date).group(0)
    # 2016-12-35
    
    # 可以加个判断
    def validate(date_text):
        try:
            if date_text != datetime.strptime(date_text, "%Y-%m-%d").strftime('%Y-%m-%d'):
                raise ValueError
            return True
        except ValueError:
            # raise ValueError("错误是日期格式或日期,格式是年-月-日")
            return False
    
    print validate(re.search(r"(d{4}-d{1,2}-d{1,2})",test_err_date).group(0))
    # false
    
    # 其他格式匹配. 如2016-12-24与2016/12/24的日期格式.
    date_reg_exp = re.compile('d{4}[-/]d{2}[-/]d{2}')
    
    test_str= """
         平安夜圣诞节2016-12-24的日子与去年2015/12/24的是有不同哦.
         """
    # 根据正则查找所有日期并返回
    matches_list=date_reg_exp.findall(test_str)
    
    # 列出并打印匹配的日期
    for match in matches_list:
      print match
    
    # 2016-12-24
    # 2015/12/24

     https://www.pythonxyz.com/10025-python-regex-match-date-time.xyz

  • 相关阅读:
    C#中一行代码实现18位数字时间戳转换为DateTime
    Java,Python,前端,Linux,公众号等5T编程资源整理免费下载
    Winform中使用FastReport的DesignReport时怎样给通过代码Table添加数据
    一、渐变边框
    一、Dev单元格
    一、Dev
    一、
    三、数据-1
    三、接口数据格式-2
    二、GitLab使用
  • 原文地址:https://www.cnblogs.com/OnlyDreams/p/7845527.html
Copyright © 2011-2022 走看看