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每次处理固定个数的字符的方法总结
Jan 29 Python
新手如何快速入门Python(菜鸟必看篇)
Jun 10 Python
Python中的默认参数实例分析
Jan 29 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 Python
Python中跳台阶、变态跳台阶与矩形覆盖问题的解决方法
May 19 Python
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
May 27 Python
12个步骤教你理解Python装饰器
Jul 01 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
python多线程并发及测试框架案例
Oct 15 Python
小结Python的反射机制
Sep 28 Python
利用Python判断你的密码难度等级
Jun 02 Python
Python上下文管理器Content Manager
Jun 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静态文件生成类实例
2014/11/29 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
记录一次排查PHP脚本执行卡住的问题
2016/12/27 PHP
比较搞笑的js陷阱题
2010/02/07 Javascript
JS幻灯片可循环播放可平滑旋转带滚动导航(自写)
2013/08/05 Javascript
用JQuery实现全选与取消的两种简单方法
2014/02/22 Javascript
Javascript基础教程之数组 array
2015/01/18 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
jquery 实现复选框的全选操作实例代码
2017/01/24 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
微信小程序 冒泡事件原理解析
2019/09/27 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[48:27]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
[05:11]TI9战队采访——VIRTUSPRO
2019/08/22 DOTA
Python3多线程爬虫实例讲解代码
2018/01/05 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
Python找出列表中出现次数最多的元素三种方式
2020/02/24 Python
python安装后的目录在哪里
2020/06/21 Python
Python正则re模块使用步骤及原理解析
2020/08/18 Python
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
怎样写好自我鉴定
2013/12/04 职场文书
村官学习十八大感想
2014/01/15 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
建筑工程造价专业自荐信
2014/07/08 职场文书
美术学专业求职信
2014/07/23 职场文书
法定代表人授权委托书
2014/09/19 职场文书
党的群众路线教育实践活动总结大会主持词
2014/10/30 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
2016年植树节红领巾广播稿
2015/12/17 职场文书
2016关于预防职务犯罪的心得体会
2016/01/21 职场文书
《夜莺的歌声》教学反思
2016/02/22 职场文书
深入浅析Redis 集群伸缩原理
2021/05/15 Redis