前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python正则表达式的简单应用和示例演示

Python正则表达式的简单应用和示例演示

原创
作者头像
QQ1622479435
修改2018-11-02 11:01:57
7670
修改2018-11-02 11:01:57
举报
文章被收录于专栏:Python入门Python入门

今天小编给大家分享的是Python正则表达式的简单应用和示例演示,将前面学习的Python正则表达式做一个概括。

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

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

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

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

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

这个正则表达式比较复杂,一下子可能看不懂,小编带大家一层一层的进行理解。

2、我们从左到右对正则表达式进行分析,首先“.*”代表的是任意字符出现任意多次,对应原始字符中的“XXX”;“高考时间是”没有什么特别的,就是对应原始字符串中的“高考时间是”。

3、接下来是“d{4}”代表的是连续出现4个数字,对应原始字符串中的年份“2018”;“[年/-]”表示取“年”、“/”、“-”中的任意一个字符,对应原始字符串中年份“2018”之后所连接的下一个字符。

4、继续往后是“d{1,2}”代表的是连续出现1个到2个数字,对应原始字符串中的月份“6”或者“06”;“[月/-]”表示取“月”、“/”、“-”中的任意一个字符,对应原始字符串中月份“6”或者“06”之后所连接的下一个字符,同年份的理解如出一辙。

5、接下来就复杂一些了,其中“d{1,2}”的理解同月份的理解一致,关键是关于“日”的提取主要需要注意有的字符串有日期,有的字符串并没有日期,所以需要特殊字符“|”来表示“或”的关系,并且用特殊字符“$”来表示结束。

6、理解了上述关系之后,接下来依次验证六个原始字符串,看看是否能匹配成功。下图是原始字符串string2的匹配情况。

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

发现可以匹配得上。

7、下图是原始字符串string3的匹配情况。

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

发现可以匹配得上。

8、下图是原始字符串string4的匹配情况。

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

发现可以匹配得上。

9、下图是原始字符串string5的匹配情况。

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227  -435-  450无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!内有开发工具,很多干货和技术资料分享!

发现这种模式并不能匹配上,这是什么原因呢?

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

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

需要利用特殊字符“|”和特殊字符“$”,做一个“或”的选择,如上图所示,之后就可以匹配成功了。

当然也可以直接把“[月/-]”一起加入到第二个括号里,如下图所示,这种方式更为简便。

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

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

Python正则表达式的简单应用和示例演示
Python正则表达式的简单应用和示例演示

可以看到此时可以成功匹配。

经过测试可以发现,此时改进后的字符串对6种不同日期的字符串都可以成功匹配。小伙伴们,有没有感受到正则表达式的魔力呢?

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档