对于简单的文本模式,使用str.replace()即可。

例如:

text='mark ,帅哥,18,183 帅,mark'
print(text.replace('18','19'))
print(text)

运行结果:

mark ,帅哥,19,193 帅,mark
mark ,帅哥,18,183 帅,mark

针对更为复杂的模式,可以使用re模块中的sub()函数。

实例:将日期格式从“11/28/2018”改为“2018-11-28”

import retext='今天是:11/28/2018'
print(re.sub(r'(\d+)/(\d+)/(\d+)',r'\3-\1-\2',text))
print(text)

结果:

今天是:2018-11-28
今天是:11/28/2018

sub()的第一个参数是要匹配的模式,第二个参数是要替换的模式。类似的“3”这样的反斜线加数字表示模式中捕获组的编号。

如果打算用相同的模式执行重复替换,可以考虑先将模式编译以获得更好的性能。

实例:

import retext='今天是:11/28/2018'
datepat=re.compile(r'(\d+)/(\d+)/(\d+)')
print(datepat.sub(r'\3-\1-\2',text))
print(text)

结果:

今天是:2018-11-28
今天是:11/28/2018

对于更加复杂的情况,可以指定一个替换回调函数。

示例:

import re
from calendar import month_abbr
text='今天是:11/28/2018'
datepat=re.compile(r'(\d+)/(\d+)/(\d+)')def change_date(m):mon_name=month_abbr[int(m.group(1))]return '{} {} {}'.format(m.group(3),mon_name,m.group(2))
print(datepat.sub(change_date,text))
print(text)

结果:

今天是:2018 Nov 28
今天是:11/28/2018

替换回调函数的输入参数是一个匹配对象,由match()和find()返回。用.group()方法来提取匹配中特定的部分。该函数返回替换后的文本。

除了得到替换后的文本外,如果还想知道一共完成了多少次替换,可以使用re.subn()。

示例:

import re
text='今天是:11/28/2018,昨天是11/27/2018'
datepat=re.compile(r'(\d+)/(\d+)/(\d+)')
new_text,n=datepat.subn(r'\3-\1-\2',text)
print(text)
print(new_text)
print(n)

结果:

今天是:11/28/2018,昨天是11/27/2018
今天是:2018-11-28,昨天是2018-11-27

python 正则表达式 查找 替换 文本相关推荐

  1. 【python正则表达式匹配获取文本中的11位手机号码】

    [python正则表达式匹配获取文本中的11位手机号码] 文前白话 代码实现 效果 正则知识补充 文前白话 根据需要,匹配一段没有固定格式的文本,识别其中的11位数字作为手机号,如果11位数字后还有数 ...

  2. notepad++正则表达式查找替换应用

    notepad++正则表达式查找替换应用 基本表达 应用举例 例子01 将行中数字重复 例子02 章节标题前加空行 例子03 去掉行尾的注释 例子04 匹配括号中的内容(或者各种成对符号中的内容) 基 ...

  3. VS 2005/2008 开发工具中 使用正则表达式查找替换的使用说明

    正则表达式是查找和替换文本模式的简洁和灵活的表示法.Visual Studio 中使用的正则表达式是 Visual C++ 6.0 中使用的.具有简化语法的表达式的超集. 在"查找" ...

  4. python正则表达式处理txt,python 正则表达式参数替换实例详解 python使用正则表达式替换txt内容...

    Python正则表达式如何进行字符串替换实例 import res = 'adds23dd56'ss = re.sub(r'\d', '*', s)>>> ss'adds**dd** ...

  5. Vs 正则表达式 查找替换 微软权威参考

    查找:Load\(\"Sql模板名称[^\"]+ 替换:\0_操作名 说明: 将形式如下的字符串替换 Load("Sql模板名称") Load("Sq ...

  6. python正则表达式处理txt_Python文本处理服务(re正则表达式例子)

    正则表达式例子 检查对子 在此示例中,我们将使用以下帮助函数来更优雅地显示匹配对象: def displaymatch(match):    if match is None:        retu ...

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

    正则表达式简介 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一 ...

  8. eclipse使用技巧---使用正则表达式查找替换

    1,Eclipse ctrl+f 打开查找框 2,选中 Regular expressions (正则表达式) 去掉/* */(eclipse)        /\*(.|[\r\n])*?\*/ 去 ...

  9. python正则表达式查找(findall)

    在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表. 注意: match 和 search 是匹配一次 findall 匹配所有. 语法格式为: findall ...

最新文章

  1. [C#]手把手教你打造Socket的TCP通讯连接(一)
  2. 企业中书写css,web前端开发企业级CSS常用命名,书写规范总结(示例代码)
  3. 苏嵌第一天,shell中一些基础知识
  4. element-UI级联选择器(Cascader 回显、默认显示项) - (返回结果的)格式转化 - 代码篇
  5. 查看电脑boot mode方式
  6. 2021-2025年中国灯光调光开关行业市场供需与战略研究报告
  7. MySQL半一致性读导致语句级Binlog复制错误1111
  8. Linux常用视频播放器
  9. 3,graph语法学习
  10. Hermite(埃尔米特)插值法 | 插值多项式+ 插值余项
  11. 计算机硬件故障有哪些现象,计算机常见硬件故障症状现象分析及解决办法
  12. oracle使用with as 提升查询效率
  13. C# 获取鼠标屏幕坐标有误差,鼠标定位误差问题,Windows10 C#获取鼠标坐标不准 的解决方法
  14. 【JavaSE】多线程基础
  15. easyrecovery14激活密钥数据恢复下载最新2020教程
  16. 云计算的模型都有哪些
  17. 什么是“月结30天”?(轉)
  18. Eclipse---Refreshing /.org.eclipse.jdt.core.exter
  19. Flink教程(18)- Flink阶段总结
  20. 分位数回归的r语言代码

热门文章

  1. mybatis 乐观锁_MybatisPlus新特性之逻辑删除、乐观锁、自动填充
  2. 边缘计算 — 边缘网络
  3. Linux 操作系统原理 — Namespace 资源隔离
  4. 聊聊reactive streams的schedulers
  5. Android :数据库
  6. LTE上行加扰的目的是什么?
  7. 内存对齐与sizeof
  8. RedHat已更改其开源许可规则
  9. HTML5 Canvas 绘制佛教万字
  10. 自动释放池autoreleasepool