美文网首页
正则表达式小记(1)

正则表达式小记(1)

作者: Mercury今 | 来源:发表于2017-12-15 10:48 被阅读0次

偶然遇到了一道题目:pattern = (3\d*)(5\d*)(7\d*) string = 38654712 ,问第三个括号的返回值是什么?

第一眼看到这个正则表达式的时候,我的想法是。。。。3\d*匹配不是到结尾了吗?第三个括号怎么会有返回值呢?

带着疑问和对出题人的质疑,我把题目放到了Regex tester下测试了一下,结果果然。。。我正则表达式的道行太浅。

上图: 

打脸图

后来仔细思考了一下原理,其实我们使用正则表达式筛选文本过多,把一个式子割裂开看了。pattern = (3\d*)(5\d*)(7\d*)是一个式子,而string= 38654712是符合这个规则的,因此这个string能够被这个模式串匹配到。如果3\d*直接匹配到尾,这个string便不能够被这个模式串匹配到。在匹配到之后,再拆开来看这3个返回值就不难理解了,第三个()的返回值就是从7开始到结尾的712。

(安利一波Regex tester插件,是pycharm中的一个基于Python re模块写的插件,非常好用,鼠标选择pattern,在text框中便会高亮对应的匹配值,安装教程请自行百度pycharm Regex tester)

(为个人学习、研究或者欣赏,使用此文的,需要标明作者、出处等信息。)

相关文章

  • shell命令

    关于shell命令的小记: 1. shell命令grep -E 后可加入正则表达式匹配,python中可用\s匹配...

  • 正则表达式小记(1)

    偶然遇到了一道题目:pattern = (3\d*)(5\d*)(7\d*) string =38654712 ,...

  • Web版扫雷开发小记(3)

    前篇: web版扫雷开发小记(1)web版扫雷开发小记(2)web版扫雷开发小记(3)web版扫雷开发小记(4) ...

  • Python语言基础之——re模块和面向对象

    1.re模块 1.re.compile() compile(正则表达式) - 编译正则表达式,创建正则表达式对象 ...

  • 正则表达式

    1 正则表达式 2 元字符介绍 3 BRE 和 ERE 1 BRE(基础正则表达式) 2 ERE (扩展正则表达式...

  • 正则表达式系列-1

    正则表达式系列-1正则表达式系列-2正则表达式系列-3正则表达式系列-4 什么是正则表达式 正则表达式就是用事先定...

  • Python基础入门 - 正则表达式与综合实战

    1. 初识正则表达式 1.1 介绍 步骤介绍正则表达式入门及应用正则表达式的进阶正则表达式案例 1.2 正则表达式...

  • 第十一课(2018-06-04)

    目录正则表达式扩展正则表达式grepsedawk 1. 正则表达式 Regular Expression, 通过一...

  • web版扫雷开发小记(4)

    目录:Web扫雷开发小记(1)Web扫雷开发小记(2)Web扫雷开发小记(3) 其实在完成上篇的功能之后,一个扫雷...

  • JavaScript正则表达式

    JavaScript 正则表达式 @(笔记)[正则表达式] 第一章 课程简介 1-1 JS正则表达式简介及应用 课...

网友评论

      本文标题:正则表达式小记(1)

      本文链接:https://www.haomeiwen.com/subject/kgprwxtx.html