前几天给大家分享了Python正则表达式基础(一)Python正则表达式基础(二),感兴趣的小伙伴可以点击进去学习,今天继续给大家分享Python正则表达式基础。

1、正则表达式特殊字符“+”,其代表的意思“+”号前面的任意字符必须至少出现一次,才能匹配成功。如下图所示,如果没有加特殊字符“+”,则按照前面介绍的贪婪模式从右边进行匹配,输出的结果为“pp”。

2、现在将匹配模式由之前的“.*(p.*p).*”改为“.*(p.+p).*”,即将特殊字符“*”改为特殊字符“+”,用特殊字符“+”来限定前面的字符出现的次数,至少出现一次。运行程序,得到的结果为“ppp”,如下图所示。

简单的来理解一下,首先贪婪模式不在赘述,然后匹配到第一个字符p,之后碰到特殊字符“+”,表示匹配任意字符,但该字符至少出现一次,然后再匹配到第二个字符p,才会提取到匹配的字符串。
3、再次来感受一下,将之前的三个ppp改为现在的php,之后再运行程序,如下图所示,得到的结果是php。

4、如果将之前的三个ppp改为现在的phhp,会有什么样的结果呢?如下图所示,毋庸置疑,答案肯定是phhp。

因为特殊字符“+”号表示只要任意字符至少出现一次,都会被提取出来。
5、简单的来总结一下,特殊字符“*”和特殊字符“+”都是用来表示字符出现次数的限定词,用于限定前面的任意字符出现的次数。不同的地方在于特殊字符“*”模式下,字符出现的次数可以是0次或者任意多次,而特殊字符“+”模式下,字符出现的次数至少是1次。

小伙伴们,关于正则表达式特殊字符“*”和特殊字符“+”的理解,你们get到了吧?

最新文章

  1. [转].net core 通过ViewComponent封装控件 左侧菜单
  2. 什么是BOM头,BOM头有什么影响,怎么去掉BOM头
  3. 对Ajax的理解
  4. 使用ASP.NET Web Api构建基于REST风格的服务实战系列教程【外传】——Attribute Routing
  5. Spring控制反转与依赖注入(IOC、DI)
  6. Pyqt QListWidget 展示系统环境变量
  7. 数组越界保护与消息传递black机制
  8. dedecms 列表页 list 判断flag给定指定样式 (本地测试有效)
  9. 有道单词本添加js实现自动阅读单词
  10. 在DLL中封装的VCL窗体Tab键响应的问题
  11. Python图形界面开发编程:wxPython(浅尝篇)
  12. 竞赛常用STL备忘录
  13. web (Servlet)
  14. 20169207《Linux内核原理与分析》第三周作业
  15. BeginPaint 和 GetDC 的一个区别
  16. Synchronous/Asynchronous:任务的同步异步,以及asynchronous callback异步回调
  17. 8.7 正睿暑期集训营 Day4
  18. 转css中文英文换行、禁止换行、显示省略号
  19. 「Codechef April Lunchtime 2015」Palindromeness
  20. Python3 数字Number(六)

热门文章

  1. 2015 Multi-University Training Contest 1 OO’s Sequence
  2. spark的内存分配管理
  3. Linux 文件描写叙述符设置为非堵塞的方法
  4. WEB前端开发工程师成长计划
  5. BZOJ 3240 构造矩阵+矩阵快速幂
  6. Android 自定义viewpager 三张图片在同一屏幕轮播的效果
  7. RelativeLayout中的baseline
  8. 请问Typecho Mysql 数据库和Sqlite数据库我该如何选择。
  9. @synchronized 再考察
  10. 错排公式 全排列函数 next_permitation(a,a+n)