python提取日期中的年月_python3 正则提取年月日、年月、年思路
python3 正则提取年月日、年月、年思路
使用到知识点:[] 用来表示一组字符串
() 对正则表达式分组并记住匹配的文本
[0-9] 匹配任何数字
\d 匹配一个数字字符,等价于[0-9]
? 匹配0或者2个 非贪婪模式
| 或
提取的文本:1961年5月27日
1961年05月01日
1961年03月05日
1961年11月10日
3000年01月30日
1111年8月27日
1345年09月27日
1574年12月27日
1961年10月12日
61年
1年2月
888年12月
长安元年(701年)
思路:# 匹配数字年
year_pattern="(\d{1,4}年)"
# 匹配月 月比较特殊 可能会出现01月 1月这两种情况 还有10月,12月
month_pattern="(([0?][1-9])月)|(([1?][0-2])月)|([1-9]月)"
# 匹配日 保证匹配的数字是1-31,暂未考虑单双月和2月 闰年
day_pattern="([0?][1-9]日)|([1?][0-9]日)|([2?][1-9]日)|([3][0-1]日)"
date_pattern="(\d{1,4}年)((([0?][1-9])月)|(([1?][0-2])月)|([1-9]月)?)(([0?][1-9]日)|([1?][0-9]日)|([2?][1-9]日)|([3][0-1]日)?)"
import re
def get_date(val):
res=re.search(date_pattern,val)
if res:
return res.group()
return None
日期正则表达式构建规则分析
写复杂正则的一个常用方法,就是先把不相关的需求拆分开,分别写出对应的正则,然后组合,检查一下相互的关联关系以及影响,基本上就可以得出对应的正则。
按闰年的定义可知,日期可以有几种分类方法。
根据天数是否与年份有关划分为两类
与年份无关的一类中,根据每月天数的不同,又可细分为两类1、3、5、7、8、10、12月为1-31日
4、6、9、11月为1-30日
与年份有关的一类中平年2月为1-28日
闰年2月为1-29日
根据包含日期不同可划分为四类所有年份的所有月份都包含1-28日
所有年份除2月外都包含29和30日
所有年份1、3、5、7、8、10、12月都包含31日
闰年2月包含29日
正则实现
针对每一个规则写出对应的正则,以下暂按xx年xx月xx日格式进行实现。
先考虑与年份无关的前三条规则,年份可统一写作((?!0000)[0-9]{1,4}年)
下面仅考虑月和日的正则
包括平年在内的所有年份的月份都包含1-28日(0?[1-9]|1[0-2])月(0?[1-9]|1[0-9]|2[0-8])日
包括平年在内的所有年份除2月外都包含29和30日(0?[13-9]|1[0-2])月(29|30)日
包括平年在内的所有年份1、3、5、7、8、10、12月都包含31日(0?[13578]月|1[02]月)(31日)
参考文章:
https://www.cnblogs.com/fnlingnzb-learner/p/11804303.html
python提取日期中的年月_python3 正则提取年月日、年月、年思路相关推荐
- Python提取字符串中数字(非正则提取)
今天遇到了一个题目记录一下,提取字符串中整数和浮点数. 下方是我的代码 # 提取字符串中的整数或者浮点数 s = input() res = [] count = 0 for i in range(l ...
- mysql提取日期中的年月
SQL里怎么把日期截取为月份 1.首先我们需要找到一个带日期字段的数据表. 2.接下来向表中插入日期值. 3.然后我们通过month函数获取月份即可,注意month里添加的是列名. 4.运行SQL语句 ...
- Excel公式向导一键提取日期中日的操作方法
今天小编要和大家分享的是,Excel公式向导一键提取日期中日的操作方法 (方方格子插件) 1.先看动图演示吧 2.选择第一个日期操作 3.选择公式向导操作按钮 4.选择取时间中的部分的操作命令 5.弹 ...
- Excel提取日期中年份的操作方法
今天小编要和大家分享的是,Excel提取日期中年份的操作方法,那为不会函数的你找到了一种巧妙的方法 (方方格子插件) 1.先看动图演示吧 2.选中日期内容 3.选择方方格子公式向导按钮 4.选择取 ...
- Excel一键提取日期中月份的操作方法
如图所示的日期,今天小编将通过Excel一键提取日期中月份给提取出来,该如何操作呢 (方方格子插件) 1.先看动图演示吧 2.选择第一个开始日期 3.选择公式向导按钮 4.选择其中的取时间中的部分 5 ...
- php 取字符串中的字母数字,php如何提取字符串中的数字?php提取字符串中数字的方法总结(附代码)...
本篇文章给大家带来的内容是关于php如何提取字符串中的数字?php提取字符串中数字的方法总结(附代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. PHP提取字符串中的第一组数字 ...
- python花括号怎么取_Python如何正则提取第三层花括号()里的内容?
举例:我想把如下字符串中第三层花括号的内容提取出来{supportedBandCombination-r10{{{bandEUTRA-r103,bandParametersUL-r10{{ca-Ban ...
- java 正则 提取数字_java使用正则提取字符串中的数字(例如提取短信中的验证码)详解...
使用java正则可以很方便的从字符串中提取符合条件的内容. 1.提取字符串中所有的手机号: private void getPhoneNum(String smsBody) { Pattern pat ...
- python提取cad坐标_怎么提取cad中坐标?CAD批量提取坐标点的三种方法
经常有一些小伙伴问,CAD中怎么批量提取坐标点,今天给大家总结三种方法. 方法一:多段线顺序连接并提取. 1.多段线pl连接点: 2.li命令提取坐标: 3.将点位粘贴至excel,利用数据,分列,最 ...
最新文章
- Android 9.0 系统弹框
- java中keepalived_Keepalived简明介绍
- maven学习6 Eclipse下Tomcat常用设置
- 【今晚七点】:对话快手张亮——聊聊音视频出海
- 常用的几种卷积神经网络介绍
- 阿里云飞天洛神2.0:高性能网络软硬一体化技术实践
- php修改音频文件_php获取mp3文件信息时长修改
- C++复习(虚函数)
- 拉格朗日乘子法 那些年学过的高数
- 博客V7之后,喜庆排名进入2000之内
- matlab切片操作
- 苹果Mac上的6 款值得开机启动的工具
- FFmpeg之音频封装格式、音频编解码器
- Spring Boot 项目参数校验的常见使用场景
- 微信抢票应用开发总结
- 【soft6星评论】伯俊软件借用中台撬动新一轮互联网化
- python使用xlwings库操作Excel常见操作
- 优化vue打包chunk-vendors.js 过大
- UML介绍及怎么看UML图
- 微信小程序官方调整头像昵称获取问题;微信扫码链接wifi,wifi地推,两种可行的解决方案
热门文章
- 广州市天河区2021-2022学年九年级第一学期期末考试英语试题
- HTTP协议协议报文结构请求响应数据报分析
- 周易测算网站H5源码在线起名运势测算网站系统源码
- 渭南师范计算机学院男女比例,全国高校男女比例大揭秘!去这些大学怕是要单身四年了...
- InfoPath 系列:表单的发布与共享
- SQL效率轻优化【白丁水笔知其然】
- Win10 将D盘多余空间分配给C盘
- 小白c语言学习笔记(2)——有一篇文章,共有3行文字,每行有80个字符。要求分别统计出其中英文大写字母、小写字母、数字、空格以及其它字符的个数。
- 热电偶和热电阻的区别
- centos系统性能监控常用软件介绍