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 面向对象 成员的访问约束
Dec 23 Python
win10系统中安装scrapy-1.1
Jul 03 Python
浅谈python中的变量默认是什么类型
Sep 11 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
利用python如何处理百万条数据(适用java新手)
Jun 06 Python
python读取xlsx的方法
Dec 25 Python
python SQLAlchemy的Mapping与Declarative详解
Jul 04 Python
详解Python3 pandas.merge用法
Sep 05 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
python如何进入交互模式
Jul 06 Python
如何基于Python pygame实现动画跑马灯
Nov 18 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
PHP合并数组+号和array_merge的区别
2015/06/25 PHP
详解PHP 二维数组排序保持键名不变
2019/03/06 PHP
动态调用CSS文件的JS代码
2010/07/29 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
2013/04/09 Javascript
封装html的select标签的js操作实例
2013/07/02 Javascript
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
Angularjs中UI Router全攻略
2016/01/29 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
jquery.multiselect多选下拉框实现代码
2016/11/11 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
2016/11/29 Javascript
JavaScript基础之AJAX简单的小demo
2017/01/29 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
2017/04/27 Javascript
教你30秒发布一个TypeScript包到NPM的方法步骤
2019/07/22 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
[09:34]2018DOTA2国际邀请赛寻真——永不放弃的iG
2018/08/14 DOTA
python实现同时给多个变量赋值的方法
2015/04/30 Python
Python利用Nagios增加微信报警通知的功能
2016/02/18 Python
解析Mac OS下部署Pyhton的Django框架项目的过程
2016/05/03 Python
Python实现压缩与解压gzip大文件的方法
2016/09/18 Python
利用python将json数据转换为csv格式的方法
2018/03/22 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
python适合人工智能的理由和优势
2019/06/28 Python
TensorFlow基本的常量、变量和运算操作详解
2020/02/03 Python
详解css3 mask遮罩实现一些特效
2018/10/24 HTML / CSS
Chupi官网:在爱尔兰手工制作的订婚、结婚戒指和精美珠宝
2020/09/28 全球购物
餐饮部总监岗位职责范文
2014/02/13 职场文书
职业生涯规划书前言
2014/04/15 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
医生见习报告范文
2014/11/03 职场文书
撤诉申请怎么写
2015/05/19 职场文书
为什么你写的height:100%不起作用
2021/05/10 HTML / CSS