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图像处理之镜像实现方法
May 30 Python
Django应用程序中如何发送电子邮件详解
Feb 04 Python
Python 用Redis简单实现分布式爬虫的方法
Nov 23 Python
NumPy 如何生成多维数组的方法
Feb 05 Python
numpy向空的二维数组中添加元素的方法
Nov 01 Python
Python求一批字符串的最长公共前缀算法示例
Mar 02 Python
django框架模板语言使用方法详解
Jul 18 Python
解决python-docx打包之后找不到default.docx的问题
Feb 13 Python
解决python中0x80072ee2错误的方法
Jul 19 Python
vscode调试django项目的方法
Aug 06 Python
利用Python优雅的登录校园网
Oct 21 Python
Python使用Opencv打开笔记本电脑摄像头报错解问题及解决
Jun 21 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
Laravel框架中实现使用阿里云ACE缓存服务
2015/02/10 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
php封装的验证码工具类完整实例
2016/10/19 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
js 操作符汇总
2014/11/08 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
两行代码轻松搞定JavaScript日期验证
2016/08/03 Javascript
angular.extend方法的具体使用
2017/09/14 Javascript
微信小程序中post方法与get方法的封装
2017/09/26 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
基于vue实现web端超大数据量表格的卡顿解决
2019/04/02 Javascript
ES6入门教程之变量的解构赋值详解
2019/04/13 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
Layui数据表格判断编辑输入的值,是否为我需要的类型详解
2019/10/26 Javascript
浅谈vue-props的default写不写有什么区别
2020/08/09 Javascript
[03:37]2014DOTA2国际邀请赛 主赛事第一日胜者组TOPPLAY
2014/07/19 DOTA
python 多线程应用介绍
2012/12/19 Python
Python基于checksum计算文件是否相同的方法
2015/07/09 Python
详解python的sorted函数对字典按key排序和按value排序
2018/08/10 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
python程序文件扩展名知识点详解
2020/02/27 Python
用Python生成HTML表格的方法示例
2020/03/06 Python
倩碧英国官网:Clinique英国
2018/08/10 全球购物
自主招生自荐信
2013/12/08 职场文书
个人收入证明范本
2014/01/12 职场文书
初中同学会活动方案
2014/08/22 职场文书
法人授权委托书
2014/09/16 职场文书
部队反四风对照检查材料
2014/09/26 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
教师节简报
2015/07/20 职场文书
中秋节主题班会
2015/08/14 职场文书
幼儿教师继续教育培训心得体会
2016/01/19 职场文书
python 模拟在天空中放风筝的示例代码
2021/04/21 Python
Python学习开发之图形用户界面详解
2021/08/23 Python