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中使用mongoengine操作MongoDB教程
Apr 24 Python
Python写入数据到MP3文件中的方法
Jul 10 Python
Python编程实现及时获取新邮件的方法示例
Aug 10 Python
python实现多线程网页下载器
Apr 15 Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 Python
python 求一个列表中所有元素的乘积实例
Jun 11 Python
pycharm设置鼠标悬停查看方法设置
Jul 29 Python
tensorflow 限制显存大小的实现
Feb 03 Python
Django用数据库表反向生成models类知识点详解
Mar 25 Python
浅谈在django中使用filter()(即对QuerySet操作)时踩的坑
Mar 31 Python
Python高并发解决方案实现过程详解
Jul 31 Python
scrapy redis配置文件setting参数详解
Nov 18 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下一个阿拉伯数字转中文数字的函数
2007/07/16 PHP
ThinkPHP中I(),U(),$this-&gt;post()等函数用法
2014/11/22 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP对称加密函数实现数据的加密解密
2016/10/27 PHP
javascript window.opener的用法分析
2010/04/07 Javascript
javascript中的onkeyup和onkeydown区别介绍
2013/04/28 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
微信小程序实现顶部选项卡(swiper)
2020/06/19 Javascript
javascript中的replace函数(带注释demo)
2018/01/07 Javascript
jQuery实现文件编码成base64并通过AJAX上传的方法
2018/04/12 jQuery
JS实现方形抽奖效果
2018/08/27 Javascript
Node+OCR实现图像文字识别功能
2018/11/26 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
简化Python的Django框架代码的一些示例
2015/04/20 Python
python插入排序算法实例分析
2015/07/03 Python
利用Python爬虫给孩子起个好名字
2017/02/14 Python
python先序遍历二叉树问题
2017/11/10 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
浅谈tensorflow使用张量时的一些注意点tf.concat,tf.reshape,tf.stack
2020/06/23 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
Andrew Marc官网:设计师外套的领先制造商
2019/10/30 全球购物
非功能性需求都包括哪些方面
2013/10/29 面试题
吸烟检讨书2000字
2014/02/13 职场文书
公司合作协议书范本
2014/04/18 职场文书
关爱残疾人演讲稿
2014/05/24 职场文书
幼儿园感谢信
2015/01/21 职场文书
参观邀请函范文
2015/02/02 职场文书
2016国庆促销广告语
2016/01/28 职场文书
2016年“11.11”光棍节活动总结
2016/04/05 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
关于JavaScript 中 if包含逗号表达式
2021/11/27 Javascript
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技