python使用正则表达式替换匹配成功的组并输出替换的次数


Posted in Python onNovember 22, 2017

正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。

Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。

re 模块使 Python 语言拥有全部的正则表达式功能。

compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。

re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。

本章节主要介绍python使用正则表达式替换匹配成功的组并输出替换的次数。

在前面我们学习过怎么样限制替换的次数,如果我们想知道正则表达式里匹配成功之后,替换字符串的次数,那么需要怎么办呢?这是一个好问题,这时就需要采用另一个外函数subn()了。这个函数不但输出替换后的内容,还输出替换的次数,例子:

#python 3.6
#蔡军生 
#http://blog.csdn.net/caimouse/article/details/51749579
#
import re
bold = re.compile(r'\*{2}(?P<bold_text>.*?)\*{2}')
text = 'Make this **cai**. This **junsheng**.'
print('Text:', text)
print('Bold:', bold.subn(r'<b>\g<bold_text></b>', text))

结果输出如下:

Text: Make this **cai**. This **junsheng**.
Bold: ('Make this <b>cai</b>. This <b>junsheng</b>.', 2)

ps:关于正则表达式有几个需要交代的

python的正则表达式如果捕获需要分组则使用这个语法(?P<命名>匹配的正则表达式)
re.compile用于编译正则表达式并返回对象
p.finditer返回所有匹配的迭代器
p.sub将匹配项传入回调函数,并且用返回值替换文本
m.groupdict,可以使用则的分组命名取相应的值

总结

以上所述是小编给大家介绍的python使用正则表达式替换匹配成功的组并输出替换的次数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
基于python爬虫数据处理(详解)
Jun 10 Python
深入分析python中整型不会溢出问题
Jun 18 Python
python如何发布自已pip项目的方法步骤
Oct 09 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
python+webdriver自动化环境搭建步骤详解
Jun 03 Python
简单了解Python3里的一些新特性
Jul 13 Python
对python中UDP,socket的使用详解
Aug 22 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
python导入不同目录下的自定义模块过程解析
Nov 18 Python
python传到前端的数据,双引号被转义的问题
Apr 03 Python
python异步Web框架sanic的实现
Apr 27 Python
Python 数据科学 Matplotlib图库详解
Jul 07 Python
Python实现的堆排序算法原理与用法实例分析
Nov 22 #Python
Python实现的插入排序算法原理与用法实例分析
Nov 22 #Python
Python实现的选择排序算法原理与用法实例分析
Nov 22 #Python
Python实现桶排序与快速排序算法结合应用示例
Nov 22 #Python
解决python3中自定义wsgi函数,make_server函数报错的问题
Nov 21 #Python
python不换行之end=与逗号的意思及用途
Nov 21 #Python
python 打印直角三角形,等边三角形,菱形,正方形的代码
Nov 21 #Python
You might like
php的一个登录的类 [推荐]
2007/03/16 PHP
完美实现GIF动画缩略图的php代码
2011/01/02 PHP
php在线代理转向代码
2012/05/05 PHP
codeigniter实现get分页的方法
2015/07/10 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
Yii2.0框架模型多表关联查询示例
2019/07/18 PHP
js下用层来实现select的title提示属性
2010/02/23 Javascript
javascript tips提示框组件实现代码
2010/11/19 Javascript
$.getJSON在IE下失效的原因分析及解决方法
2013/06/16 Javascript
javascript中attribute和property的区别详解
2014/06/05 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
2015/01/23 Javascript
jQuery实现的输入框选择时间插件用法实例
2015/02/28 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
简介JavaScript中的getSeconds()方法的使用
2015/06/10 Javascript
几句话带你理解JS中的this、闭包、原型链
2016/09/26 Javascript
Bootstrap媒体对象学习使用
2017/03/07 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
在vue项目中使用Jquery-contextmenu插件的步骤讲解
2019/01/27 jQuery
JavaScript 截取字符串代码实例
2019/09/05 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
Python实现简单多线程任务队列
2016/02/27 Python
基于pandas将类别属性转化为数值属性的方法
2018/07/25 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
python 使用pandas计算累积求和的方法
2019/02/08 Python
python使用opencv在Windows下调用摄像头实现解析
2019/11/26 Python
Python使用QQ邮箱发送邮件报错smtplib.SMTPAuthenticationError
2019/12/20 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
在django中form的label和verbose name的区别说明
2020/05/20 Python
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
基层党支部整改方案
2014/10/25 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
Redis三种集群模式详解
2021/10/05 Redis
Java使用HttpClient实现文件下载
2022/08/14 Java/Android