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 相关文章推荐
python 字符串split的用法分享
Mar 23 Python
自动化Nginx服务器的反向代理的配置方法
Jun 28 Python
Python获取邮件地址的方法
Jul 10 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
对python多线程SSH登录并发脚本详解
Feb 14 Python
Django用户认证系统 组与权限解析
Aug 02 Python
Python爬虫爬取Bilibili弹幕过程解析
Oct 10 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
Python unittest工作原理和使用过程解析
Feb 24 Python
自定义Django默认的sitemap站点地图样式
Mar 04 Python
Python中的特殊方法以及应用详解
Sep 20 Python
教你使用pyinstaller打包Python教程
May 27 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
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
比较strtr, str_replace和preg_replace三个函数的效率
2013/06/26 PHP
发布一个高效的JavaScript分析、压缩工具 JavaScript Analyser
2007/11/30 Javascript
Javascript 二维数组
2009/11/26 Javascript
Javascript 类型转换方法
2010/10/24 Javascript
(跨浏览器基础事件/浏览器检测/判断浏览器)经验代码分享
2013/01/24 Javascript
浅谈jQuery事件绑定原理
2015/01/02 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
vue项目搭建以及全家桶的使用详细教程(小结)
2018/12/19 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
Openlayers显示地理位置坐标的方法
2020/09/28 Javascript
使用Typescript开发微信小程序的步骤详解
2021/01/12 Javascript
python实现监控windows服务并自动启动服务示例
2014/04/17 Python
编程语言Python的发展史
2014/09/26 Python
python版本坑:md5例子(python2与python3中md5区别)
2017/06/20 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
详解python实现线程安全的单例模式
2018/03/05 Python
Python画图高斯分布的示例
2019/07/10 Python
使用python绘制温度变化雷达图
2019/10/18 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
Pandas实现一列数据分隔为两列
2020/05/18 Python
pytorch读取图像数据转成opencv格式实例
2020/06/02 Python
python七种方法判断字符串是否包含子串
2020/08/18 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
python3实现简单飞机大战
2020/11/29 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
美国隐形眼镜零售商:LensPure
2019/03/10 全球购物
中国旅游网站:途牛旅游网
2019/09/29 全球购物
澳大利亚领先的内衣店:Bendon Lingerie澳大利亚
2020/05/15 全球购物
销售行业个人求职自荐信
2013/09/25 职场文书
公司采购主管岗位职责
2014/06/17 职场文书
PHP获取学生成绩的方法
2021/11/17 PHP
Python装饰器的练习题
2021/11/23 Python
2022年四月新番
2022/03/15 日漫
SQLServer RANK() 排名函数的使用
2022/03/23 SQL Server
Python进程池与进程锁之语法学习
2022/04/11 Python