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
Python实现ssh批量登录并执行命令
Oct 25 Python
python多维数组切片方法
Apr 13 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
PyCharm+PySpark远程调试的环境配置的方法
Nov 29 Python
python+os根据文件名自动生成文本
Mar 21 Python
Pytorch 多块GPU的使用详解
Dec 31 Python
Django关于admin的使用技巧和知识点
Feb 10 Python
python pandas移动窗口函数rolling的用法
Feb 29 Python
Django用户认证系统如何实现自定义
Nov 12 Python
Pytorch实现WGAN用于动漫头像生成
Mar 04 Python
Python find()、rfind()方法及作用
Dec 24 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五种设计模式小结
2011/03/23 PHP
怎么在Windows系统中搭建php环境
2013/08/31 PHP
php微信公众号开发之简答题
2018/10/20 PHP
ThinkPHP5.1框架页面跳转及修改跳转页面模版示例
2019/05/06 PHP
thinkPHP5框架接口写法简单示例
2019/08/05 PHP
PHP goto语句用法实例
2019/08/06 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
javascript 面向对象编程 function也是类
2009/09/17 Javascript
浏览器的JavaScript引擎的识别方法
2013/10/20 Javascript
js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
2013/12/11 Javascript
Javascript四舍五入Math.round()与Math.pow()使用介绍
2013/12/27 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
快速解决js中window.location.href不工作的问题
2016/11/02 Javascript
微信小程序左右滑动切换页面详解及实例代码
2017/02/28 Javascript
JS实现双击内容变为可编辑状态
2017/03/03 Javascript
jquery网页加载进度条的实现
2017/06/01 jQuery
使用live-server快速搭建本地服务器+自动刷新的方法
2018/03/09 Javascript
移动端(微信等使用vConsole调试console的方法
2019/03/05 Javascript
[06:07]辉夜杯现场观众互动 “比谁远送显示器”
2015/12/26 DOTA
[00:48]完美“圣”典2016风云人物:xiao8宣传片
2016/11/30 DOTA
python动态加载变量示例分享
2014/02/17 Python
Python实现高效求解素数代码实例
2015/06/30 Python
Python调用C++程序的方法详解
2017/01/24 Python
用python处理MS Word的实例讲解
2018/05/08 Python
python删除文本中行数标签的方法
2018/05/31 Python
计算pytorch标准化(Normalize)所需要数据集的均值和方差实例
2020/01/15 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
Python实现哲学家就餐问题实例代码
2020/11/09 Python
拥有超过850家商店的美国在线派对商店:Party City
2018/10/21 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
鞋类设计与工艺专业销售求职信
2013/11/01 职场文书
艺术节主持词
2014/04/02 职场文书
外贸业务员求职信
2014/06/16 职场文书
MySQL 数据类型详情
2021/11/11 MySQL
frg-100简单操作(设置)说明
2022/04/05 无线电
java获取一个文本文件的编码(格式)信息
2022/09/23 Java/Android