正则表达式,分组,捕获组,反向引用,重复数字正则表达式 ,python 实现
今天的目标是匹配文本中的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 实现相关推荐
- 【C#进阶二】C#中的正则表达式知识总结(字符转义/字符类/ 定位点/ 分组构造 /数量词/反向引用构造/替换构造/替代/正则表达式选项)(理论篇)
文章目录 0. 正则表达式网站推荐 1.字符转义 2.字符类 3. 定位点 4. 分组构造 5.数量词 6.反向引用构造 7.替换构造 8.替代 9.正则表达式选项 正则表达式是对字符串操作的一种逻辑 ...
- java中的正则表达式捕获组与引用的概念
今天群里有个人问,怎样用增则表达式匹配三角形的三边,其实只是要匹配三个数字而已,如 301 402 503 开始认为很简单,我就写了一个 "(([1-9]\\d?)\\s){2}$2&q ...
- 正则表达式的捕获性分组/反向引用
文章目录 分组 捕获性分组和反向引用 分组 正则的分组主要通过小括号来实现,括号包裹的子表达式作为一个分组,括号后可以紧跟限定词表示重复次数.如下,小括号内包裹的 abc 便是一个分组: // (ab ...
- python正则表达式--分组、后向引用、前(后)向断言
无名.有名分组 (1)正则表达式-无名分组 从正则表 达式的左边开始看,看到的第一个左括号"("表示表示第一个分组,第二个表示第二个分组, 依次类推. 需要注意的是,有一个隐含的全 ...
- 【正则表达式系列】一些概念(字符组、捕获组、非捕获组)
前言 本文介绍一些正则中的常用名词以及对应概念,譬如字符组,捕获组.非捕获组.反向引用.转义和\s \b等 大纲 字符组 捕获组 反向引用 非捕获组 ..\s和\S \b \转义 字符组 []字符组表 ...
- 正则表达式之反向引用
1.概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用.要了解反向引用,首先要了解捕获组,关于捕获组,参考 正则基础之--捕获 ...
- 【Java 正则表达式】单字符匹配、预定字符、量词、Matcher(贪婪、勉强、独占模式)、捕获组、边界匹配符、String类与正则表达式
正则表达式(Regex Expression) 字符串的合法验证 自己编写验证逻辑 使用正则表达式 单字符匹配 预定义字符 量词(Quantifier) Pattern.Matcher Matcher ...
- 【转】正则基础之——捕获组(capture group)
源地址 1 概述 1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用.当然,这种引用既可以是在正则表达式内部, ...
- 正则基础之——反向引用
From: http://blog.csdn.net/lxcnn/article/details/4476746 1 概述 捕获组捕获到的内容,不仅可以在正则表达式外部通过程序进行引用, ...
- js 中的正则捕获组
1.1 什么是捕获组 捕获组就是把正则表达式中子表达式匹配的内容,保存到内存中以数字编号或显式命名的组里,方便后面引用.当然,这种引用既可以是在正则表达式内部,也可以是在正则表达式外部. 捕获组有两种 ...
最新文章
- session传递参数_分布式 Session 之 Spring Session 架构与设计
- 《Selenium2自动化测试实战基于Python语言》读书笔记
- EndNote(二)之英文引文导入方式
- 他35岁,年薪100万,牛逼的人生无需解释
- SAP Spartacus自定义指令cxOutlet的工作原理
- Spring Boot整合MyBatis连接Oracle数据库
- java默认异常处理_spring boot 默认异常处理的实现
- Python基础:文件的操作
- GridView实现CheckBox全选
- zerorpc java_Zerorpc 支持暴露多个远程Api接口类
- sqlserver备份还原丢失dbo_编程实现备份和还原数据库_sqlserver
- 《GO语言实战》笔记
- 计算机应用培训心得,计算机培训心得体会范文500字
- 数据结构:利用栈实现数制转换
- python中的对数_Python中求对数方法总结
- 简单说说rebuttal
- 无法打开网页版晓木虫怎么办?
- 又发现一个ChatGPT体验站,辅助写代码真方便
- 基于 Python 的大型超市商品销售关联度分析系统
- HTC-G4刷机过程
热门文章
- python爬虫+数据分析完整流程--豆瓣电影分类排行榜
- 开机时自动启动的AutoHotkey脚本 2019年07月08日19时06分
- 【红外技术】红外焦平面阵列非均匀性校正
- 【Python】WARNING: The script xx.exe is installed in xxdirectory which is not on PATH.
- 父子组件传值——静态传值、动态传值
- 2篇SCI二区+3篇一类论文认定A档博士!享110万房补!直接副教授、甚至教授待遇,30万科启
- 奈奎斯特与香农定理_奈奎斯特定理和香农定理有什么区别?
- 解决50%宽度div再加上边框无法左右排列问题
- 520到了,教你做个JavaWeb表白墙小项目
- WordPress 前端投稿/编辑发表文章插件 DJD Site Post(支持游客和已注册用户)汉化版 免费下载...