Python正则表达式的简单应用和示例演示
前一阵子小编给大家连续分享了十篇关于Python正则表达式基础的文章,感兴趣的小伙伴可以点击链接进去查看。今天小编给大家分享的是Python正则表达式的简单应用和示例演示,将前面学习的Python正则表达式做一个概括。

下面的栗子是用于提取高考日期,一般来说,我们填写日期都会写2018年6月7日,但是也有很多人会写成2018/6/7、2018-6-7、2018-06-07等,还有的人可能会写为2018-06或者2018年6月。总之对日期的写法五花八门,那么我们现在需要写一个正则表达式来统一匹配这么多的情况,应该如何来处理呢?具体的教程如下所示。

1、首先我们先写个简单的正则表达式,然后一步步经过测试,慢慢达到匹配的效果。

这个正则表达式比较复杂,一下子可能看不懂,小编带大家一层一层的进行理解。
2、我们从左到右对正则表达式进行分析,首先“.*”代表的是任意字符出现任意多次,对应原始字符中的“XXX”;“高考时间是”没有什么特别的,就是对应原始字符串中的“高考时间是”。
3、接下来是“d{4}”代表的是连续出现4个数字,对应原始字符串中的年份“2018”;“[年/-]”表示取“年”、“/”、“-”中的任意一个字符,对应原始字符串中年份“2018”之后所连接的下一个字符。
4、继续往后是“d{1,2}”代表的是连续出现1个到2个数字,对应原始字符串中的月份“6”或者“06”;“[月/-]”表示取“月”、“/”、“-”中的任意一个字符,对应原始字符串中月份“6”或者“06”之后所连接的下一个字符,同年份的理解如出一辙。
5、接下来就复杂一些了,其中“d{1,2}”的理解同月份的理解一致,关键是关于“日”的提取主要需要注意有的字符串有日期,有的字符串并没有日期,所以需要特殊字符“|”来表示“或”的关系,并且用特殊字符“$”来表示结束。
6、理解了上述关系之后,接下来依次验证六个原始字符串,看看是否能匹配成功。下图是原始字符串string2的匹配情况。

发现可以匹配得上。
7、下图是原始字符串string3的匹配情况。

发现可以匹配得上。
8、下图是原始字符串string4的匹配情况。

发现可以匹配得上。
9、下图是原始字符串string5的匹配情况。

发现这种模式并不能匹配上,这是什么原因呢?
10、原因是月份“d{1,2}”后面限定要跟“[月/-]”,而原始字符串string5的时间为“2018-06”,其后面没有任何的字符就结束了,也匹配模式搭配不上,因此在这里需要改进一下。

需要利用特殊字符“|”和特殊字符“$”,做一个“或”的选择,如上图所示,之后就可以匹配成功了。
当然也可以直接把“[月/-]”一起加入到第二个括号里,如下图所示,这种方式更为简便。

11、下图是原始字符串string6的匹配情况。

可以看到此时可以成功匹配。
经过测试可以发现,此时改进后的字符串对6种不同日期的字符串都可以成功匹配。小伙伴们,有没有感受到正则表达式的魔力呢?
Python正则表达式的简单应用和示例演示的更多相关文章
- python进程间数据不共享(示例演示)
import multiprocessing data_list = [] def task(arg): data_list.append(arg) print(data_list) def run( ...
- 学会python正则表达式就是这么简单
一前言 本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式.看完这篇文章,读者们要理解什么是正 ...
- Python正则表达式就是这么简单【新手必学】
一前言本篇文章带大家快速入门正则表达式的使用,正则表达式的规则不仅适用python语言,基本大多数编程语言都适用,在日常使用中极为广泛,读者们有必要学好正则表达式.看完这篇文章,读者们要理解什么是正则 ...
- C#调用Python脚本的简单示例
C#调用Python脚本的简单示例 分类:Python (2311) (0) 举报 收藏 IronPython是一种在 .NET及 Mono上的 Python实现,由微软的 Jim Huguni ...
- python正则表达式re模块详细介绍--转载
本模块提供了和Perl里的正则表达式类似的功能,不关是正则表达式本身还是被搜索的字符串,都可以是Unicode字符,这点不用担心,python会处理地和Ascii字符一样漂亮. 正则表达式使用反斜杆( ...
- python 正则表达式操作
正则表达式操作 本模块提供了类似于Perl的正则表达式匹配操作.要匹配的模式和字符串可以是Unicode字符串以及8位字符串. 正则表达式使用反斜杠字符('\')来表示特殊的形式或者来允许使用特殊的 ...
- Python 正则表达式入门(中级篇)
Python 正则表达式入门(中级篇) 初级篇链接:http://www.cnblogs.com/chuxiuhong/p/5885073.html 上一篇我们说在这一篇里,我们会介绍子表达式,向前向 ...
- 比较详细Python正则表达式操作指南(re使用)
比较详细Python正则表达式操作指南(re使用) Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式.Python 1.5之前版本则是通过 regex 模块提供 E ...
- Python 正则表达式-OK
Python正则表达式入门 一. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分. 正则表达式是用于处理字符串的强大工具, 拥有自己独特的语法以及一个独立的处理引擎, 效率上 ...
随机推荐
- nginx proxy_set_header设置,自定义header
在实际应用中,我们可能需要获取用户的ip地址,比如做异地登陆的判断,或者统计ip访问次数等,通常情况下我们使用request.getRemoteAddr()就可以获取到客户端ip,但是当我们使用了ng ...
- NYIST 1019 G.亲戚来了
G.亲戚来了 时间限制:1000 ms | 内存限制:65535 KB 难度:3 描述 Bob 一家人要去下馆子,为什么呢?因为他姑姑的大爷的叔叔的孙子的表叔的婶婶的儿子来了,亲戚来了当然要下 ...
- jquery.validate动态更改校验规则 【转】
有时候表单中有多个字段是相互关联的,以下遇到的就是证件类型和证件号码的关联,在下拉框中选择不同的证件类型,证件号码的值的格式都是不同的,这就需要动态的改变校验规则. <!DOCTYPE html ...
- 时间就是金钱HNCOI2000(最短路)
时间就是金钱HNCOI2000 版权声明:本篇随笔版权归作者YJSheep(www.cnblogs.com/yangyaojia)所有,转载请保留原地址! 人们总是选时间最短或费用最低的路线 例如, ...
- Mysql导入Sql文件时报Error Code: 2013 - Lost connection to MySQL server during query
MySql 有时我们导入sql文件,文件过大,导致Error Code: 2013 - Lost connection to MySQL server during query这种错误 执行以下: S ...
- MATLAB插值
转自原文 MATLAB插值 插值问题 在应用领域中,由有限个已知数据点,构造一个解析表达式,由此计算数据点之间的函数值,称之为插值. 实例:海底探测问题 某公司用声纳对海底进行测试,在5×5海里的坐标 ...
- hadoop 2.6.0 LightWeightGSet源码分析
LightWeightGSet的作用用一个数组来存储元素,而且用链表来解决冲突.不能rehash.所以内部数组永远不用改变大小.此类不支持空元素. 此类也不是线程安全的.有两个类型參数.第一个用于查找 ...
- Swift环境下实现UILabel居上 居中 居下对齐
首先在Xcode中新建.h文件,将下面代码复制进去 // // myUILabel.h // // // Created by yexiaozi_007 on 3/4/13. // Copyright ...
- 基于深度学习的病毒检测技术无需沙箱环境,直接将样本文件转换为二维图片,进而应用改造后的卷积神经网络 Inception V4 进行训练和检测
话题 3: 基于深度学习的二进制恶意样本检测 分享主题:全球正在经历一场由科技驱动的数字化转型,传统技术已经不能适应病毒数量飞速增长的发展态势.而基于沙箱的检测方案无法满足 APT 攻击的检测需求,也 ...
- codeforces 527 C Glass Carving
Glass Carving time limit per test 2 seconds Leonid wants to become a glass carver (the person who cr ...