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的ORM框架中SQLAlchemy库的查询操作的教程
Apr 25 Python
python+selenium实现登录账户后自动点击的示例
Dec 22 Python
python构建深度神经网络(续)
Mar 10 Python
基于python list对象中嵌套元组使用sort时的排序方法
Apr 18 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
django自带调试服务器的使用详解
Aug 29 Python
python+OpenCV实现车牌号码识别
Nov 08 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
Python读取excel文件中带公式的值的实现
Apr 17 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
关于Kotlin中SAM转换的那些事
Sep 15 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
ip签名探针
2006/10/09 PHP
PHP配合fiddler抓包抓取微信指数小程序数据的实现方法分析
2020/01/02 PHP
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
JavaScript的单例模式 (singleton in Javascript)
2010/06/11 Javascript
当某个文本框成为焦点时即清除文本框内容
2014/04/28 Javascript
在线所见即所得HTML编辑器的实现原理浅析
2015/04/25 Javascript
浅谈Javascript的静态属性和原型属性
2015/05/07 Javascript
Javascript实现获取及设置光标位置的方法
2015/07/21 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
jQuery EasyUI Pagination实现分页的常用方法
2016/05/21 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
jQuery实现的超链接提示效果示例【附demo源码下载】
2016/09/09 Javascript
JS设置时间无效问题的解决办法
2017/02/18 Javascript
JS数组搜索之折半搜索实现方法分析
2017/03/27 Javascript
JS实现显示当前日期的实例代码
2018/07/03 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
[03:36]DOTA2完美大师赛coL战队趣味视频——我演你猜
2017/11/23 DOTA
tornado捕获和处理404错误的方法
2014/02/26 Python
python集合类型用法分析
2015/04/08 Python
Python升级导致yum、pip报错的解决方法
2017/09/06 Python
基于Python os模块常用命令介绍
2017/11/03 Python
Python利用Django如何写restful api接口详解
2018/06/08 Python
Python实现元素等待代码实例
2019/11/11 Python
Python numpy数组转置与轴变换
2019/11/15 Python
css3简单练习实现遨游浏览器logo的绘制
2013/01/30 HTML / CSS
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
html5画布旋转效果示例
2014/01/27 HTML / CSS
中国网上药店领导者:1药网
2017/02/16 全球购物
Scotch Porter官方网站:男士美容产品
2020/08/31 全球购物
物业总经理岗位职责
2014/02/28 职场文书
教学评估实施方案
2014/03/16 职场文书
房产委托公证书样本
2014/04/04 职场文书
党员作风建设自查报告
2014/10/23 职场文书
pytorch中的model.eval()和BN层的使用
2021/05/22 Python
详解Vue slot插槽
2021/11/20 Vue.js