Python正则表达式初识(四)

普天同庆的日子里,送出最真的祝福,祝祖国繁荣昌盛,祝朋友事业有成,祝父母身体健康,祝大家永远开心,祝所有人幸福平安~~

今天继续给大家分享Python正则表达式基础知识,主要给大家介绍一下特殊字符“{}”的用法,具体的教程如下。

特殊字符“{}”实质上也是一个限定词的用法,其限定前面字符所出现的次数,其常用的模式有三种,分别是“{数字}”、“{数字,}”和“{数字1, 数字2}”。举个例子,如“{1}”、“{1,}”和“{1, 3}”。到这里可能大家还不是很清楚,下面依次通过实例来演示一下,加深对特殊字符“{}”的理解。

1、如下图所示,限定字符p前面的字符出现1次,则根据贪婪匹配模式,pap成功匹配到。

2、如果将匹配模式更改为“.*(p.{2}p).*”,则无任何的输出,如下图所示,因为此时并没有任何的字字符串符合匹配条件。

3、相应的,我们将原始字符串做一下更改,如下图所示,此时“.*(p.{2}p).*”匹配模式有对应的结果,如下图所示。

4、特殊字符“{1,}”代表的是前面的字符出现1次及以上;特殊字符“{2,}”代表的是前面的字符出现2次及以上;特殊字符“{3,}”代表的是前面的字符出现3次及以上;以此类推。举个栗子,如下图所示。

我们要匹配出现p字符前面出现3次及以上的次数,此时子字符串phhhhp被提取出来,但是pap和paap都没有提取到,因为其不满足匹配条件。

5、特殊字符“{1, 3}” 代表的是前面的字符至少出现1次,最多出现3次;特殊字符“{2, 5}” 代表的是前面的字符至少出现2次,最多出现5次;以此类推。举个栗子,如下图所示。

当使用特殊字符“{1, 3}”的时候,如下图所示:

贪婪模式下,字符串从右边开始往左取,首先遇到相对满足条件的子字符串是phhhhp,但是并不符合规则,因为该子字符串出现的次数为4次,而限定条件为1次到3次,所以这个子字符串不符合匹配条件,尔后继续往前匹配,得到匹配结果paap,满足匹配条件。

6、同理,当使用特殊字符“{3, 5}”的时候,如下图所示:

根据上一步的分析可以得知,该匹配结果为phhhhp。

小伙伴们,关于正则表达式特殊字符“{}”的用法,你们get到了吗?

原文发布于微信公众号 - Python爬虫与数据挖掘(crawler_python)

原文发表时间:2018-10-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java一日一条

10个有关String的面试问题

简单来讲,“==”测试的是两个对象的引用是否相同,而equals()比较的是两个字符串的值是否相等。除非你想检查的是两个字符串是否是同一个对象,否则你应该使用e...

682
来自专栏工科狗和生物喵

【计算机本科补全计划】C++ Primer:指针和const限定符

正文之前 今天下午看了一下午的计算机组成与设计,结果好死不死的看到了设计部分--处理器的设计。天哪,我现在还只是一个准备给人装一台电脑做实验田的家伙,连用都不咋...

2804
来自专栏pydata

sort algorithm

选择排序: 5(前) 8 5(后) 2 9 –> 2 8 5(后) 5(前) 9 快速排序: 5 3(前) 3(中) 4 3(后) 8 9 10 ...

902
来自专栏喵了个咪的博客空间

zephir-(10)内置函数

#zephir-内置函数# ? ##前言## 先在这里感谢各位zephir开源技术提供者 嗨!大家好呀,今天要和大家一同学习zephir的内置函数,学过PHP的...

3708
来自专栏阿凯的Excel

Python读书笔记(数字型数据)

Python与其它编程语言一样,常见的数字型无法整型(int)和浮点型两种(Float)两种。 整型就是整数,浮点型就是小数。 如果在Python中输入一个数字...

3775
来自专栏用户2442861的专栏

python 中迭代多个序列

http://blog.csdn.net/he_jian1/article/details/40819407

672
来自专栏Java学习网

Java中有关Null的9问题

Java中有关Null的9问题 对于Java程序员来说,null是令人头痛的东西。时常会受到空指针异常(NPE)的骚扰。连Java的发明者都承认...

2295
来自专栏互联网开发者交流社区

面向对象的Java实现

1-1:封装 a.为什么需要封装(封装可以是数据方便维护、增加实用性、方便扩展等等。通过面向对象的思想,模拟现实生活中的事物。) b.什么是封装(封装就是将...

861
来自专栏带你撸出一手好代码

Java元组的使用

元组在计算机领域有着特殊的意义,这个名字听起来似乎有些陌生, 平时在写代码也基本没什么应用场景, 然而, 出人意料的是, 元组跟程序设计密切相关, 可能有的同学...

5078
来自专栏思考的代码世界

Python编程从入门到实践之条件判断|第4天

在日常开发中需要用到如果怎么样就怎么样,否则就怎么样的逻辑。主要采用if语句来实现的。

3737

扫码关注云+社区

领取腾讯云代金券