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 初始化多维数组代码
Sep 06 Python
Python批量修改文件后缀的方法
Jan 26 Python
Python制作Windows系统服务
Mar 25 Python
Python在图片中添加文字的两种方法
Apr 29 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
基于python socketserver框架全面解析
Sep 21 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 Python
python中树与树的表示知识点总结
Sep 14 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
Python 时间戳之获取整点凌晨时间戳的操作方法
Jan 28 Python
PyQt5+python3+pycharm开发环境配置教程
Mar 24 Python
解决paramiko执行命令超时的问题
Apr 16 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计算页面执行时间的实现代码
2013/06/18 PHP
php防注入及开发安全详细解析
2013/08/09 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
php设计模式之享元模式分析【星际争霸游戏案例】
2020/03/23 PHP
各浏览器对click方法的支持差异小结
2011/07/31 Javascript
gridpanel动态加载数据的实例代码
2013/07/18 Javascript
jQuery实现表格行上下移动和置顶效果
2015/06/05 Javascript
Angularjs自定义指令Directive详解
2017/05/27 Javascript
基于JSONP原理解析(推荐)
2017/12/04 Javascript
vue弹窗组件使用方法
2018/04/28 Javascript
小程序云开发部署攻略(图文教程)
2018/10/30 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
Python深入学习之装饰器
2014/08/31 Python
python中列表元素连接方法join用法实例
2015/04/07 Python
Python实现自动添加脚本头信息的示例代码
2016/09/02 Python
Python3中exp()函数用法分析
2019/02/19 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
python 获取当前目录下的文件目录和文件名实例代码详解
2020/03/10 Python
浅谈html5标签css3的常用样式
2016/10/20 HTML / CSS
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
美国在线自行车商店:Jenson USA
2018/05/22 全球购物
StubHub美国:购买或出售您的门票
2019/07/09 全球购物
创业计划书怎样才能打动风投
2014/01/01 职场文书
初中毕业生的自我评价
2014/03/03 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
公司捐书倡议书
2015/04/27 职场文书
党员观看《筑梦中国》心得体会
2016/01/18 职场文书
导游词之北京明十三陵
2019/10/28 职场文书
python实现网络五子棋
2021/04/11 Python
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
在Windows Server 2012上安装 .NET Framework 3.5 所遇到的问题
2022/04/29 Servers