我是靠谱客的博主 可靠帆布鞋,最近开发中收集的这篇文章主要介绍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

转载于:https://www.cnblogs.com/OnlyDreams/p/7845527.html

最后

以上就是可靠帆布鞋为你收集整理的Python正则表达式匹配日期与时间的全部内容,希望文章能够帮你解决Python正则表达式匹配日期与时间所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部