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使用PIL缩放网络图片并保存的方法
Apr 24 Python
python判断给定的字符串是否是有效日期的方法
May 13 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
django rest framework之请求与响应(详解)
Nov 06 Python
pycharm远程调试openstack的图文教程
Nov 21 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
Django models文件模型变更错误解决
May 11 Python
解决numpy和torch数据类型转化的问题
May 23 Python
Python语言规范之Pylint的详细用法
Jun 24 Python
Python自动操作神器PyAutoGUI的使用教程
Jun 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
php生成mysql的数据字典
2016/07/07 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
php + nginx项目中的权限详解
2017/05/23 PHP
jQuery解决iframe高度自适应代码
2009/12/20 Javascript
jQuery源码解读之hasClass()方法分析
2015/02/20 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
快速学习jQuery插件 Form表单插件使用方法
2015/12/01 Javascript
Bootstrap入门书籍之(零)Bootstrap简介
2016/02/17 Javascript
jQuery改变form表单的action,并进行提交的实现代码
2016/05/25 Javascript
Bootstrap菜单按钮及导航实例解析
2016/09/09 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
2018/03/03 Javascript
基于jquery实现左右上下移动效果
2018/05/02 jQuery
vue树形结构获取键值的方法示例
2018/06/21 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
layui: layer.open加载窗体时出现遮罩层的解决方法
2019/09/26 Javascript
继承行为在 ES5 与 ES6 中的区别详解
2019/12/24 Javascript
node.js 使用 net 模块模拟 websocket 握手进行数据传递操作示例
2020/02/11 Javascript
eslint+prettier统一代码风格的实现方法
2020/07/22 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
Python迭代和迭代器详解
2016/11/10 Python
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
微信小程序python用户认证的实现
2019/07/29 Python
python内存管理机制原理详解
2019/08/12 Python
python 实现简单的FTP程序
2019/12/27 Python
Python常用库大全及简要说明
2020/01/17 Python
Python中如何添加自定义模块
2020/06/09 Python
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
美国巧克力喷泉品牌:Sephra
2019/05/05 全球购物
年度考核自我鉴定
2014/03/19 职场文书
加油口号大全
2014/06/13 职场文书
2015年元旦演讲稿
2014/09/12 职场文书