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

yipeiwu_com6年前Python基础

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

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设计】网站的支持!

相关文章

深入理解Django-Signals信号量

定义Signals Django自身提供了一些常见的signal,用户本身也可以定义自己需要的signal 定义signal很简单,只需要实例化一个Signal实例即可 实例化Sign...

Tensorflow卷积神经网络实例进阶

Tensorflow卷积神经网络实例进阶

在Tensorflow卷积神经网络实例这篇博客中,我们实现了一个简单的卷积神经网络,没有复杂的Trick。接下来,我们将使用CIFAR-10数据集进行训练。 CIFAR-10是一个经...

Python实现基于HTTP文件传输实例

本文实例讲述了Python实现基于HTTP文件传输的方法。分享给大家供大家参考。具体实现方法如下: 一、问题: 因为需要最近看了一下通过POST请求传输文件的内容 并且自己写了Serve...

python使用smtplib模块通过gmail实现邮件发送的方法

本文实例讲述了python使用smtplib模块通过gmail实现邮件发送的方法。分享给大家供大家参考。具体实现方法如下: import smtplib from email.MIM...

手把手教你python实现SVM算法

手把手教你python实现SVM算法

什么是机器学习 (Machine Learning)       机器学习是研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能...