Python正则表达式匹配日期与时间的方法


Posted in Python onJuly 07, 2019

下面给大家介绍下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}\s\d{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}\s\d{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

 ps:下面看下python正则表达式中原生字符r的作用

 r的作用

>>> mm = "c:\\a\\b\\c"
>>> mm
'c:\\a\\b\\c'
>>> print(mm)
c:\a\b\c
>>> re.match("c:\\\\",mm).group()
'c:\\'
>>> ret = re.match("c:\\\\",mm).group()
>>> print(ret)
c:\
>>> ret = re.match("c:\\\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a
>>> ret = re.match(r"c:\a",mm).group()
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'NoneType' object has no attribute 'group'
>>>

说明

Python中字符串前面加上 r 表示原生字符串

与大多数编程语言相同,正则表达式里使用"\"作为转义字符,这就可能造成反斜杠困扰。假如你需要匹配文本中的字符"\",那么使用编程语言表示的正则表达式里将需要4个反斜杠"\\":前两个和后两个分别用于在编程语言里转义成反斜杠,转换成两个反斜杠后再在正则表达式里转义成一个反斜杠。

Python里的原生字符串很好地解决了这个问题,有了原生字符串,你再也不用担心是不是漏写了反斜杠,写出来的表达式也更直观。

>>> ret = re.match(r"c:\\a",mm).group()
>>> print(ret)
c:\a

总结

以上所述是小编给大家介绍的Python正则表达式匹配日期与时间的方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
wxpython 学习笔记 第一天
Mar 16 Python
使用graphics.py实现2048小游戏
Mar 10 Python
Python编程中装饰器的使用示例解析
Jun 20 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
python实现手机销售管理系统
Mar 19 Python
使用pyecharts生成Echarts网页的实例
Aug 12 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
python如何导入依赖包
Jul 13 Python
Python如何给你的程序做性能测试
Jul 29 Python
Python+Opencv身份证号码区域提取及识别实现
Aug 25 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
python在协程中增加任务实例操作
Feb 28 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 #Python
python保存字典和读取字典的实例代码
Jul 07 #Python
python 实现创建文件夹和创建日志文件的方法
Jul 07 #Python
python 画二维、三维点之间的线段实现方法
Jul 07 #Python
Python调用百度根据经纬度查询地址的示例代码
Jul 07 #Python
选择Python写网络爬虫的优势和理由
Jul 07 #Python
python和c语言的主要区别总结
Jul 07 #Python
You might like
一个没有MYSQL数据库支持的简易留言本的编写
2006/10/09 PHP
php用正则表达式匹配URL的简单方法
2013/11/12 PHP
php实现PDO中捕获SQL语句错误的方法
2017/02/16 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
Vue.js在使用中的一些注意知识点
2017/04/29 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
用react-redux实现react组件之间数据共享的方法
2018/06/08 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
vue之a-table中实现清空选中的数据
2019/11/07 Javascript
详解一些适用于Node.js的命名约定
2019/12/08 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
python实现的udp协议Server和Client代码实例
2014/06/04 Python
Python采集腾讯新闻实例
2014/07/10 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
2018/04/12 Python
Python实现爬取马云的微博功能示例
2019/02/16 Python
使用python来调用CAN通讯的DLL实现方法
2019/07/03 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
python实现输入任意一个大写字母生成金字塔的示例
2019/10/27 Python
Spring实战之使用util:命名空间简化配置操作示例
2019/12/09 Python
Python+OpenCV实现将图像转换为二进制格式
2020/01/09 Python
Python 自由定制表格的实现示例
2020/03/20 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
经理管理专业毕业自荐书范文
2014/02/12 职场文书
安全横幅标语
2014/06/09 职场文书
法定代表人资格证明书
2014/09/11 职场文书
总账会计岗位职责
2015/04/02 职场文书
红色影片观后感
2015/06/18 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫
JS前端宏任务微任务及Event Loop使用详解
2022/07/23 Javascript