python使用正则表达式替换匹配成功的组


Posted in Python onNovember 17, 2017

正则表达式简介

正则表达式,又称正规表示式、正规表示法、正规表达式、规则表达式、常规表示法(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。

许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。

最初的正则表达式出现于理论计算机科学的自动控制理论和形式化语言理论中。在这些领域中有对计算(自动控制)的模型和对形式化语言描述与分类的研究。 1940年,Warren McCulloch与Walter Pitts将神经系统中的神经元描述成小而简单的自动控制元。 1950年代,数学家斯蒂芬·科尔·克莱尼利用称之为“正则集合”的数学符号来描述此模型。肯·汤普逊将此符号系统引入编辑器QED,然后是Unix上的编辑器ed,并最终引入grep。自此,正则表达式被广泛地使用于各种Unix或者类似Unix的工具,例如Perl。

Python提供了对正则表达式的支持,它内嵌在Python中,通过Python的re模块提供。

re模块提供了类似于Perl的正则表达式语法。

通过使用正则表达式,我们可以制定需要匹配的字符串的特定格式,然后从需要处理的字符串中提取我们感兴趣的字符串。Python中的re模块也提供了像sub(),subn(),split()这些方法来实现通过正则表达式来灵活地进行文本的替换和分割。

在Python中,正则表达式会被编译成一系列的字节码,然后由通过C编写的正则表达式引擎进行执行。

好了,下面看下python使用正则表达式替换匹配成功的组,具体内容如下所示:

在前面主要学习了怎么样匹配成功,都没有修改原来的内容的。现在来学习一个匹配成功之后修改相应的内容,在这里使用sub()函数来实现这个功能,同时使用引用组号来插入原来的字符,例子如下:

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

结果输出如下:

Text: Make this **cai**. This **junsheng**.
Bold: Make this <b>cai</b>. This <b>junsheng</b>.

总结

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

Python 相关文章推荐
python使用在线API查询IP对应的地理位置信息实例
Jun 01 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python自动化脚本安装指定版本python环境详解
Sep 14 Python
Python使用sort和class实现的多级排序功能示例
Aug 15 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
python之当你发现QTimer不能用时的解决方法
Jun 21 Python
Python的matplotlib绘图如何修改背景颜色的实现
Jul 16 Python
django获取from表单multiple-select的value和id的方法
Jul 19 Python
Python如何合并多个字典或映射
Jul 24 Python
基于tensorflow权重文件的解读
May 26 Python
python之PySide2安装使用及QT Designer UI设计案例教程
Jul 26 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 #Python
详解python eval函数的妙用
Nov 16 #Python
Python算法之图的遍历
Nov 16 #Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 #Python
python字典操作实例详解
Nov 16 #Python
python实现报表自动化详解
Nov 16 #Python
TF-IDF算法解析与Python实现方法详解
Nov 16 #Python
You might like
thinkPHP的Html模板标签使用方法
2012/11/13 PHP
php数组索引的Key加引号和不加引号的区别
2014/08/19 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
PHP实现通过正则表达式替换回调的内容标签
2015/06/15 PHP
PHP自定义函数判断是否为Get、Post及Ajax提交的方法
2017/07/27 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
JS事件Event元素(兼容IE,Firefox,Chorme)
2012/11/01 Javascript
chrome浏览器当表单自动填充时如何去除浏览器自动添加的默认样式
2015/10/09 Javascript
三分钟带你玩转jQuery.noConflict()
2016/02/15 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
对javascript继承的理解
2016/10/11 Javascript
JavaScript瀑布流布局实现代码
2017/05/06 Javascript
JavaScript中document.referrer的用法详解
2017/07/04 Javascript
Scala解析Json字符串的实例详解
2017/10/11 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
vue.draggable实现表格拖拽排序效果
2018/12/01 Javascript
手挽手带你学React之React-router4.x的使用
2019/02/14 Javascript
基于vue的tab-list类目切换商品列表组件的示例代码
2020/02/14 Javascript
发布你的Python模块详解
2016/09/15 Python
python发送邮件实例分享
2017/07/28 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
Django 路由系统URLconf的使用
2018/10/11 Python
浅析python的优势和不足之处
2018/11/20 Python
浅谈Pandas:Series和DataFrame间的算术元素
2018/12/22 Python
Python实现删除排序数组中重复项的两种方法示例
2019/01/31 Python
python ddt数据驱动最简实例代码
2019/02/22 Python
python自动结束mysql慢查询会话的实例代码
2019/10/27 Python
python实现从ftp服务器下载文件
2020/03/03 Python
用HTML5的canvas实现一个炫酷时钟效果
2016/05/20 HTML / CSS
.net面试题
2015/12/22 面试题
酒店员工培训方案
2014/06/02 职场文书
安全生产标语
2014/06/06 职场文书
村主任“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
给学校的建议书400字
2015/09/14 职场文书
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS