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编程中的包结构
Oct 25 Python
Python守护线程用法实例
Jun 23 Python
Python的语言类型(详解)
Jun 24 Python
Django与JS交互的示例代码
Aug 23 Python
Python 多核并行计算的示例代码
Nov 07 Python
详解Python中 sys.argv[]的用法简明解释
Dec 20 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
Django框架model模型对象验证实现方法分析
Oct 02 Python
TensorFlow保存TensorBoard图像操作
Jun 23 Python
python绘制雷达图实例讲解
Jan 03 Python
如何利用python和DOS获取wifi密码
Mar 31 Python
浅谈Python numpy创建空数组的问题
May 25 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将字符串首字母大小写转换的实例
2017/01/21 PHP
laravel 5.3中自定义加密服务的方案详解
2017/05/09 PHP
php 中的closure用法详解
2017/06/12 PHP
PHP lcfirst()函数定义与用法
2019/03/08 PHP
Aster vs KG BO3 第三场2.19
2021/03/10 DOTA
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
用js做一个小游戏平台 (一)
2009/12/29 Javascript
javascript 解析url的search方法
2010/02/09 Javascript
JS通过相同的name进行表格求和代码
2013/08/18 Javascript
在ASP.NET中使用JavaScript脚本的方法
2013/11/12 Javascript
JS生成某个范围的随机数【四种情况详解】
2016/04/20 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
利用Javascript实现简单的转盘抽奖
2017/02/13 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
浅谈webpack4 图片处理汇总
2018/09/12 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
python实现可变变量名方法详解
2019/07/01 Python
基于MATLAB和Python实现MFCC特征参数提取
2019/08/13 Python
关于tf.TFRecordReader()函数的用法解析
2020/02/17 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
为什么说python更适合树莓派编程
2020/07/20 Python
基于HTML5 Canvas 实现弹出框效果
2017/06/05 HTML / CSS
塔吉特百货公司官网:Target
2017/04/27 全球购物
幼儿园安全检查制度
2014/01/30 职场文书
房地产财务管理制度
2014/02/02 职场文书
新闻专业毕业生英文求职信
2014/03/19 职场文书
房产委托公证书样本
2014/04/04 职场文书
我爱我的祖国演讲稿
2014/05/04 职场文书
《我爱祖国》演讲稿1000字
2014/09/26 职场文书
就业协议书范本
2014/10/08 职场文书
英文导游词
2015/02/13 职场文书
2015年团支部年度工作总结
2015/05/27 职场文书
微信告警的zabbix监控系统 监控整个NGINX集群
2022/04/18 Servers