python字符串替换re.sub()方法解析


Posted in Python onSeptember 18, 2019

pattern可以是一个字符串也可以是一个正则,用于匹配要替换的字符,如果不写,字符串不做修改。\1 代表第一个分组

repl是将会被替换的值,repl可以是字符串也可以是一个方法。如果是一个字符串,反斜杠会被处理为逃逸字符,如\n会被替换为换行,等等。repl如果是一个function,每一个被匹配到的字段串执行替换函数。

\g<1> 代表前面pattern里面第一个分组,可以简写为\1,\g<0>代表前面pattern匹配到的所有字符串。

count是pattern被替换的最大次数,默认是0会替换所有。有时候可能只想替换一部分,可以用到count

实例1:

a = re.sub(r'hello', 'i love the', 'hello world')
print(a)<br data-filtered="filtered">'i love the world'  #hello world里面的hello被 i love the替换

实例2:

>>> a = re.sub(r'(\d+)', 'hello', 'my numer is 400 and door num is 200')
>>> a
'my numer is hello and door num is hello' #数字400 和 200 被hello替换

实例3:

a = re.sub(r'hello (\w+), nihao \1', r'emma','hello sherry, nihao sherry')
>>> a
'emma' #\1代表第一个分组的值即sherry,因为有两个sherry,所以用\1可以指代第二个,这样整个字符串被emma替换

示例4:

>>> a = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\2-\3-\1', '2018-06-07')
>>> a
'06-07-2018'
>>> a = re.sub('(\d{4})-(\d{2})-(\d{2})', r'\g<2>-\g<3>-\g<1>', '2018-06-07')
>>> a
'06-07-2018' #\2 和 \g<2> 指代的的都是前面的第二个分组

示例5:

import re
def replace_num(str):
  numDict = {'0':'?','1':'一','2':'二','3':'三','4':'四','5':'五','6':'六','7':'七','8':'八','9':'九'}
  print(str.group())
  return numDict[str.group()]
my_str = '2018年6月7号'
a = re.sub(r'(\d)', replace_num, my_str)
print(a) #每次匹配一个数字,执行函数,获取替换后的值

和sub()函数一样,只是返回的是一个tuple,替换后的字符串和替换的个数

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python k-近邻算法实例分享
Jun 11 Python
python中类的一些方法分析
Sep 25 Python
Python中使用copy模块实现列表(list)拷贝
Apr 14 Python
浅谈Python中带_的变量或函数命名
Dec 04 Python
Python异常对代码运行性能的影响实例解析
Feb 08 Python
Tensorflow 自带可视化Tensorboard使用方法(附项目代码)
Feb 10 Python
使用EduBlock轻松学习Python编程
Oct 08 Python
在matplotlib的图中设置中文标签的方法
Dec 13 Python
Python如何调用外部系统命令
Aug 07 Python
Python 单例设计模式用法实例分析
Sep 23 Python
Python操作Sqlite正确实现方法解析
Feb 05 Python
python 解压、复制、删除 文件的实例代码
Feb 26 Python
python安装virtualenv虚拟环境步骤图文详解
Sep 18 #Python
用Python写一个自动木马程序
Sep 17 #Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
Sep 17 #Python
Python中*args和**kwargs的区别详解
Sep 17 #Python
python SocketServer源码深入解读
Sep 17 #Python
Python @property使用方法解析
Sep 17 #Python
Python爬取知乎图片代码实现解析
Sep 17 #Python
You might like
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
php数组查找函数总结
2014/11/18 PHP
Javascript Boolean、Nnumber、String 强制类型转换的区别详细介绍
2012/12/13 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
原生js实现日期联动
2015/01/12 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
Jquery判断radio、selelct、checkbox是否选中及获取选中值方法总结
2015/04/15 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
js图片跟随鼠标移动代码
2015/11/26 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
jquery轮播的实现方式 附完整实例
2016/07/28 Javascript
JS简单获取及显示当前时间的方法
2016/08/03 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
javascript过滤数组重复元素的实现方法
2017/05/03 Javascript
详解Vue.js分发之作用域槽
2017/06/13 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
Vue中的无限加载vue-infinite-loading的方法
2018/04/08 Javascript
微信小程序把百度地图坐标转换成腾讯地图坐标过程详解
2019/07/10 Javascript
JS中的算法与数据结构之常见排序(Sort)算法详解
2019/08/16 Javascript
在react中使用vue的状态管理的方法示例
2020/05/02 Javascript
js实现右键弹出自定义菜单
2020/09/08 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
[41:52]2018DOTA2亚洲邀请赛3月29日小组赛B组Effect VS Secret
2018/03/30 DOTA
python使用sqlite3时游标使用方法
2018/03/13 Python
Python判断有效的数独算法示例
2019/02/23 Python
通过pycharm使用git的步骤(图文详解)
2019/06/13 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
Pytorch损失函数nn.NLLLoss2d()用法说明
2020/07/07 Python
项目经理聘任书
2014/03/29 职场文书
MySQL索引是啥?不懂就问
2021/07/21 MySQL
ubuntu下常用apt命令介绍
2022/06/05 Servers