python 正则表达式 查找 替换 文本
对于简单的文本模式,使用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 正则表达式 查找 替换 文本相关推荐
- 【python正则表达式匹配获取文本中的11位手机号码】
[python正则表达式匹配获取文本中的11位手机号码] 文前白话 代码实现 效果 正则知识补充 文前白话 根据需要,匹配一段没有固定格式的文本,识别其中的11位数字作为手机号,如果11位数字后还有数 ...
- notepad++正则表达式查找替换应用
notepad++正则表达式查找替换应用 基本表达 应用举例 例子01 将行中数字重复 例子02 章节标题前加空行 例子03 去掉行尾的注释 例子04 匹配括号中的内容(或者各种成对符号中的内容) 基 ...
- VS 2005/2008 开发工具中 使用正则表达式查找替换的使用说明
正则表达式是查找和替换文本模式的简洁和灵活的表示法.Visual Studio 中使用的正则表达式是 Visual C++ 6.0 中使用的.具有简化语法的表达式的超集. 在"查找" ...
- python正则表达式处理txt,python 正则表达式参数替换实例详解 python使用正则表达式替换txt内容...
Python正则表达式如何进行字符串替换实例 import res = 'adds23dd56'ss = re.sub(r'\d', '*', s)>>> ss'adds**dd** ...
- Vs 正则表达式 查找替换 微软权威参考
查找:Load\(\"Sql模板名称[^\"]+ 替换:\0_操作名 说明: 将形式如下的字符串替换 Load("Sql模板名称") Load("Sq ...
- python正则表达式处理txt_Python文本处理服务(re正则表达式例子)
正则表达式例子 检查对子 在此示例中,我们将使用以下帮助函数来更优雅地显示匹配对象: def displaymatch(match): if match is None: retu ...
- python正则表达式分组替换_python使用正则表达式替换匹配成功的组
正则表达式简介 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一 ...
- eclipse使用技巧---使用正则表达式查找替换
1,Eclipse ctrl+f 打开查找框 2,选中 Regular expressions (正则表达式) 去掉/* */(eclipse) /\*(.|[\r\n])*?\*/ 去 ...
- python正则表达式查找(findall)
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表. 注意: match 和 search 是匹配一次 findall 匹配所有. 语法格式为: findall ...
最新文章
- [C#]手把手教你打造Socket的TCP通讯连接(一)
- 企业中书写css,web前端开发企业级CSS常用命名,书写规范总结(示例代码)
- 苏嵌第一天,shell中一些基础知识
- element-UI级联选择器(Cascader 回显、默认显示项) - (返回结果的)格式转化 - 代码篇
- 查看电脑boot mode方式
- 2021-2025年中国灯光调光开关行业市场供需与战略研究报告
- MySQL半一致性读导致语句级Binlog复制错误1111
- Linux常用视频播放器
- 3,graph语法学习
- Hermite(埃尔米特)插值法 | 插值多项式+ 插值余项
- 计算机硬件故障有哪些现象,计算机常见硬件故障症状现象分析及解决办法
- oracle使用with as 提升查询效率
- C# 获取鼠标屏幕坐标有误差,鼠标定位误差问题,Windows10 C#获取鼠标坐标不准 的解决方法
- 【JavaSE】多线程基础
- easyrecovery14激活密钥数据恢复下载最新2020教程
- 云计算的模型都有哪些
- 什么是“月结30天”?(轉)
- Eclipse---Refreshing /.org.eclipse.jdt.core.exter
- Flink教程(18)- Flink阶段总结
- 分位数回归的r语言代码