今天的目标是匹配文本中的ababab形式的所有内容,str=‘121212,123456,343434,565656,787878’
也就是,‘121212,’,‘343434,565656,787878’两部分

最后的表达式为
reg=’(\d{2})\1+,.*,((\d{2})\3+,)+(\d{2})\4+’

浅谈我的经验:
1.首先利用的分组,或者说捕获组,子模式,
\d代表一个数字,\d{2}代表两个数字,由于我们是希望abab形式,所以需要重复\d{2},但是我们不能写成\d{2}\d{2},那就是如同1234这样的数字,只要是四个数字随便匹配,所以要利用反向引用,即(\d{2})\1,
2.反向引用,这个\1代表的第一个分组的编号,相当于重复了1号分组的数据,abab形式出现。有一个需要强调,((\d{2})\3+,)这一段内容中的\3代表是的3号分组的内容,那我们怎么知道哪个是3号分组呢,我的理解是,按照"("的顺序编号,(\d{2})为1号,((\d{2})\3+,)为2号,2号里的(\d{2})为3号,最后的(\d{2})为4号
所以区分谁是第几组很重要,否则没法写。
3.带入python或者其他解释器实现,python要注意一点,findall这个方法匹配出来的是我们每一个编号分组的内容,而不是我们想要的内容,这个函数对于()的正则有这个特点。

在python中,当表达式有括号(分组)时,列表中的字符串只是圆括号中的内容,不是整个正则表达式所匹配的内容
  (1)当正则表达式中含有多个圆括号()时
  返回列表中的元素由所有满足匹配的内容组成,但是每个元素都是由表达式中所有圆括号匹配的内容组成的元组

>>> re.findall(r’a(b)©’,‘abcabc’)

[(‘b’, ‘c’), (‘b’, ‘c’)]

(2)当正则表达式中只带有一个圆括号时
  返回的列表的元素由所有能成功匹配表达式中圆括

号匹配的内容组成,并且该列表中的元素都是字符串

>>> re.findall(r’a(b)c’,‘abcabc’)

[‘b’, ‘b’]

(3)当正则表达式中没有圆括号时
  返回列表中的元素由所有能成功匹配的子串组成。

>>> re.findall(r’abc’,‘abcabc’)

[‘abc’, ‘abc’]

正则表达式,分组,捕获组,反向引用,重复数字正则表达式 ,python 实现相关推荐

  1. 【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)

    文章目录 0. 正则表达式网站推荐 1.字符转义 2.字符类 3. 定位点 4. 分组构造 5.数量词 6.反向引用构造 7.替换构造 8.替代 9.正则表达式选项 正则表达式是对字符串操作的一种逻辑 ...

  2. java中的正则表达式捕获组与引用的概念

    今天群里有个人问,怎样用增则表达式匹配三角形的三边,其实只是要匹配三个数字而已,如 301 402 503 开始认为很简单,我就写了一个   "(([1-9]\\d?)\\s){2}$2&q ...

  3. 正则表达式的捕获性分组/反向引用

    文章目录 分组 捕获性分组和反向引用 分组 正则的分组主要通过小括号来实现,括号包裹的子表达式作为一个分组,括号后可以紧跟限定词表示重复次数.如下,小括号内包裹的 abc 便是一个分组: // (ab ...

  4. python正则表达式--分组、后向引用、前(后)向断言

    无名.有名分组 (1)正则表达式-无名分组 从正则表 达式的左边开始看,看到的第一个左括号"("表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全 ...

  5. 【正则表达式系列】一些概念(字符组、捕获组、非捕获组)

    前言 本文介绍一些正则中的常用名词以及对应概念,譬如字符组,捕获组.非捕获组.反向引用.转义和\s \b等 大纲 字符组 捕获组 反向引用 非捕获组 ..\s和\S \b \转义 字符组 []字符组表 ...

  6. 正则表达式之反向引用

    1.概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用.要了解反向引用,首先要了解捕获组,关于捕获组,参考 正则基础之--捕获 ...

  7. 【Java 正则表达式】单字符匹配、预定字符、量词、Matcher(贪婪、勉强、独占模式)、捕获组、边界匹配符、String类与正则表达式

    正则表达式(Regex Expression) 字符串的合法验证 自己编写验证逻辑 使用正则表达式 单字符匹配 预定义字符 量词(Quantifier) Pattern.Matcher Matcher ...

  8. 【转】正则基础之——捕获组(capture group)

    源地址 1        概述 1.1     什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用.当然,这种引用既可以是在正则表达式内部, ...

  9. 正则基础之——反向引用

    From: http://blog.csdn.net/lxcnn/article/details/4476746 1        概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用, ...

  10. js 中的正则捕获组

    1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用.当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部. 捕获组有两种 ...

最新文章

  1. session传递参数_分布式 Session 之 Spring Session 架构与设计
  2. 《Selenium2自动化测试实战基于Python语言》读书笔记
  3. EndNote(二)之英文引文导入方式
  4. 他35岁,年薪100万,牛逼的人生无需解释
  5. SAP Spartacus自定义指令cxOutlet的工作原理
  6. Spring Boot整合MyBatis连接Oracle数据库
  7. java默认异常处理_spring boot 默认异常处理的实现
  8. Python基础:文件的操作
  9. GridView实现CheckBox全选
  10. zerorpc java_Zerorpc 支持暴露多个远程Api接口类
  11. sqlserver备份还原丢失dbo_编程实现备份和还原数据库_sqlserver
  12. 《GO语言实战》笔记
  13. 计算机应用培训心得,计算机培训心得体会范文500字
  14. 数据结构:利用栈实现数制转换
  15. python中的对数_Python中求对数方法总结
  16. 简单说说rebuttal
  17. 无法打开网页版晓木虫怎么办?
  18. 又发现一个ChatGPT体验站,辅助写代码真方便
  19. 基于 Python 的大型超市商品销售关联度分析系统
  20. HTC-G4刷机过程

热门文章

  1. python爬虫+数据分析完整流程--豆瓣电影分类排行榜
  2. 开机时自动启动的AutoHotkey脚本 2019年07月08日19时06分
  3. 【红外技术】红外焦平面阵列非均匀性校正
  4. 【Python】WARNING: The script xx.exe is installed in xxdirectory which is not on PATH.
  5. 父子组件传值——静态传值、动态传值
  6. 2篇SCI二区+3篇一类论文认定A档博士!享110万房补!直接副教授、甚至教授待遇,30万科启
  7. 奈奎斯特与香农定理_奈奎斯特定理和香农定理有什么区别?
  8. 解决50%宽度div再加上边框无法左右排列问题
  9. 520到了,教你做个JavaWeb表白墙小项目
  10. WordPress 前端投稿/编辑发表文章插件 DJD Site Post(支持游客和已注册用户)汉化版 免费下载...