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 05 Python
Python Web框架Flask信号机制(signals)介绍
Jan 01 Python
Python 类与元类的深度挖掘 II【经验】
May 06 Python
python生成随机图形验证码详解
Nov 08 Python
tensorflow训练中出现nan问题的解决
Feb 10 Python
python实现手机销售管理系统
Mar 19 Python
python lambda函数及三个常用的高阶函数
Feb 05 Python
Python3打包exe代码2种方法实例解析
Feb 17 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
利用django model save方法对未更改的字段依然进行了保存
Mar 28 Python
python判断all函数输出结果是否为true的方法
Dec 03 Python
JAVA SpringMVC实现自定义拦截器
Mar 16 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
从一个不错的留言本弄的mysql数据库操作类
2007/09/02 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
php实现parent调用父类的构造方法与被覆写的方法
2015/02/11 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
浅说js变量
2011/05/25 Javascript
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
js字符串完全替换函数分享
2014/12/03 Javascript
jQuery实现延迟跳转的方法
2015/06/05 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
jQuery遍历节点方法汇总(推荐)
2017/05/13 jQuery
Vue.js结合Ueditor富文本编辑器的实例代码
2017/07/11 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
Angular通过指令动态添加组件问题
2018/07/09 Javascript
angularjs获取到My97DatePicker选中的值方法
2018/10/02 Javascript
vue引入微信sdk 实现分享朋友圈获取地理位置功能
2019/07/04 Javascript
javascript实现图片轮播代码
2019/07/09 Javascript
layui下拉框获取下拉值(select)的例子
2019/09/10 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
python实现红包裂变算法
2016/02/16 Python
Python简单获取自身外网IP的方法
2016/09/18 Python
详解Python中类的定义与使用
2017/04/11 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
详解django自定义中间件处理
2018/11/21 Python
python 基于TCP协议的套接字编程详解
2019/06/29 Python
使用python爬取抖音视频列表信息
2019/07/15 Python
Python 内置函数globals()和locals()对比详解
2019/12/23 Python
HTML5等待加载动画效果
2017/07/27 HTML / CSS
摄影专业毕业生求职信
2014/03/13 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
2014年行政人事工作总结
2014/12/09 职场文书
涨价通知怎么写
2015/04/23 职场文书
总结几个非常实用的Python库
2021/06/26 Python
Python实现日志实时监测的示例详解
2022/04/06 Python