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 re模块介绍
Nov 30 Python
Python实现提取文章摘要的方法
Apr 21 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
对dataframe进行列相加,行相加的实例
Jun 08 Python
python2.7 安装pip的方法步骤(管用)
May 05 Python
Python对接六大主流数据库(只需三步)
Jul 31 Python
vscode 配置 python3开发环境的方法
Sep 19 Python
Pyqt5自适应布局实例
Dec 13 Python
Python交互环境下打印和输入函数的实例内容
Feb 16 Python
解决pycharm debug时界面下方不出现step等按钮及变量值的问题
Jun 09 Python
用python对excel查重
Dec 07 Python
详解Python中@staticmethod和@classmethod区别及使用示例代码
Dec 14 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
实例(Smarty+FCKeditor新闻系统)
2007/01/02 PHP
PHP日期处理函数 整型日期格式
2011/01/12 PHP
php获取后台Job管理的实现代码
2011/06/10 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
PHP经典面试题集锦
2015/03/19 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
xmlHTTP实例
2006/10/24 Javascript
使用javascript获取flash加载的百分比的实现代码
2011/05/25 Javascript
js字符串截取函数substr substring slice使用对比
2013/11/27 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
jQuery zTree加载树形菜单功能
2016/02/25 Javascript
iScroll.js 使用方法参考
2016/05/16 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
最全的JavaScript开发工具列表 总有一款适合你
2017/06/29 Javascript
Javascript中prototype与__proto__的关系详解
2018/03/11 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
2018/10/20 Javascript
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
python编写简单端口扫描器
2019/09/04 Python
python-docx文件定位读取过程(尝试替换)
2020/02/13 Python
python代码xml转txt实例
2020/03/10 Python
HTML5中的Web Notification桌面通知功能的实现方法
2019/07/29 HTML / CSS
网络技术支持面试题
2013/04/22 面试题
物业管理员岗位职责范文
2013/11/25 职场文书
运动会广播稿30字
2014/01/21 职场文书
前台文员职责范本
2014/03/07 职场文书
条幅标语大全
2014/06/20 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
厨师长岗位职责范本
2014/08/25 职场文书
党员个人整改措施
2014/10/24 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
MySQL sql_mode的使用详解
2021/05/08 MySQL
golang实现浏览器导出excel文件功能
2022/03/25 Golang