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 16 Python
使用python画个小猪佩奇的示例代码
Jun 06 Python
对python_discover方法遍历所有执行的用例详解
Feb 13 Python
Python3.5基础之NumPy模块的使用图文与实例详解
Apr 24 Python
python ChainMap的使用和说明详解
Jun 11 Python
pyqt5 禁止窗口最大化和禁止窗口拉伸的方法
Jun 18 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
python opencv实现简易画图板
Aug 27 Python
python自动化测试三部曲之unittest框架的实现
Oct 07 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
Python requests用法和django后台处理详解
Mar 19 Python
OpenCV项目实践之停车场车位实时检测
Apr 11 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
Cakephp 执行主要流程
2010/03/24 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
如何在Laravel之外使用illuminate组件详解
2020/09/20 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
jquery果冻抖动效果实现方法
2015/01/15 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
JavaScript中错误正确处理方式小结你用对了吗
2017/10/10 Javascript
vue-router路由懒加载和权限控制详解
2017/12/13 Javascript
js+css实现打字效果
2020/06/24 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
微信小程序开发常见问题及解决方案
2019/07/11 Javascript
JS数组进阶示例【数组的几种函数用法】
2020/01/16 Javascript
微信小程序 bindtap 传参的实例代码
2020/02/21 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
python基础教程之popen函数操作其它程序的输入和输出示例
2014/02/10 Python
python循环监控远程端口的方法
2015/03/14 Python
Python pyinotify日志监控系统处理日志的方法
2018/03/08 Python
python PrettyTable模块的安装与简单应用
2019/01/11 Python
查看python安装路径及pip安装的包列表及路径
2019/04/03 Python
pandas中的series数据类型详解
2019/07/06 Python
Python实现Excel自动分组合并单元格
2021/02/22 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
Skyscanner波兰:廉价航班
2017/11/07 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
留学自荐信
2013/10/10 职场文书
营销专业应届生求职信
2013/11/26 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
淘宝中秋节活动方案
2014/01/31 职场文书
企业党建工作总结2015
2015/05/26 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
HTML基础详解(上)
2021/10/16 HTML / CSS