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的web.py框架实现类似Django的ORM查询的教程
May 02 Python
Python中循环引用(import)失败的解决方法
Apr 22 Python
Python中作用域的深入讲解
Dec 10 Python
python 画三维图像 曲面图和散点图的示例
Dec 29 Python
Python使用dict.fromkeys()快速生成一个字典示例
Apr 24 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
给Python学习者的文件读写指南(含基础与进阶)
Jan 29 Python
python GUI库图形界面开发之PyQt5打开保存对话框QFileDialog详细使用方法与实例
Feb 27 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
python中time.ctime()实例用法
Feb 03 Python
Python几种酷炫的进度条的方式
Apr 11 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 模拟$_PUT实现代码
2010/03/15 PHP
php懒人函数 自动添加数据
2011/06/28 PHP
php数据结构与算法(PHP描述) 快速排序 quick sort
2012/06/21 PHP
php获取网页标题和内容函数(不包含html标签)
2014/02/03 PHP
PHP命名空间namespace用法实例分析
2016/09/27 PHP
使弱类型的语言JavaScript变强势
2009/06/22 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
2014/05/08 Javascript
基于promise.js实现nodejs的promises库
2014/07/06 NodeJs
javascript自动生成包含数字与字符的随机字符串
2015/02/09 Javascript
Javascript实现div层渐隐效果的方法
2015/05/30 Javascript
javascript从定义到执行 你不知道的那些事
2016/01/04 Javascript
jquery实现具有嵌套功能的选项卡
2016/02/12 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
JS实现标签页切换效果
2017/05/04 Javascript
vue短信验证性能优化如何写入localstorage中
2018/04/25 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
JS实现多选框的操作
2020/06/24 Javascript
在Vue 中实现循环渲染多个相同echarts图表
2020/07/20 Javascript
three.js着色器材质的内置变量示例详解
2020/08/16 Javascript
举例讲解Python设计模式编程中的访问者与观察者模式
2016/01/26 Python
python3中dict(字典)的使用方法示例
2017/03/22 Python
python虚拟环境迁移方法
2019/01/03 Python
python的scipy实现插值的示例代码
2019/11/12 Python
使用phonegap查找联系人的实现方法
2017/03/31 HTML / CSS
仓库组长岗位职责
2014/01/29 职场文书
高中生学期学习自我评价
2014/02/24 职场文书
公司股权转让协议书
2014/04/12 职场文书
化工实习心得体会
2014/09/09 职场文书
2014年招商引资工作总结
2014/11/22 职场文书
政府会议通知范文
2015/04/15 职场文书
党支部评议意见
2015/06/02 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
python调试工具Birdseye的使用教程
2021/05/25 Python
Golang数据类型和相互转换
2022/04/12 Golang
Elasticsearch 索引操作和增删改查
2022/04/19 Python
python的html标准库
2022/04/29 Python