python字符串替换re.sub()方法解析
作者:郭雪原 发布时间:2022-02-14 16:51:42
标签:python,字符串,替换,re.sub()
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,替换后的字符串和替换的个数
来源:https://www.cnblogs.com/guoxueyuan/p/9151678.html
0
投稿
猜你喜欢
- 我就废话不多说了,直接上代码吧!import cv2import timecap = cv2.VideoCapture(0)cap.set(
- 当今越来越多的应用程序迁移到web平台上。由于没有平台的限制和安装的要求,SAAS的模式看起来非常有吸引力。Web应用程序的界面设计,其核心
- 这篇文章主要介绍了Python JSON编解码方式原理详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- apply_async简介python在同一个线程中多次执行同一方法时,该方法执行耗时较长且每次执行过程及结果互不影响,如果只在主进程中执行
- Numpy是Python强大的数据计算和处理模块,其操作数据非常迅速且简单易行。首先读取CSV文件>>> import n
- 前言在早期学Python的时候,买了一本《Python编程快速上手-让繁琐工作自动化》。这本书里面讲得都比较基础,不过却非常的实用。估计从书
- 目录一、axis简介二、不一样的axis对于axis=0三、总结补充:python中某些函数axis参数的理解在我们使用Python中的Nu
- 一、作业回顾1、格式化输出与%百分号以下结果中,可以正常输出“50%及格”语句是(B)A、print
- 0.目录1.前言2.安装python3.使用pip下载、安装包3.1 安装Scrapy3.2 安装PyQt3.3 同时安装多个包3.4 pi
- 很久没写过东西了,今天看了chinahuman 的《用asp自动解析网页中的图片地址,并将其保存到本地服务器》,于是优化了这个程序,并且将所
- python格式化字符串有%和{}两种 字符串格式控制符.字符串输入数据格式类型(%格式操作符号)%%百分号标记#就是输出一个%%c字符及其
- 笔者在网站开发中,采用PHP4.0+MySQL3.23.38建立了多种应用。下面,以一个简单的聊天室设计为例,介绍PHP+MySQL在网页开
- 在开发的时候,用户要求在认证的时候自动添加xadmin登录账户和分配组权限from django.contrib.auth.models i
- 对于数据库管理员来说,可以经常想了解一些之前未听说过的存储过程,特别是无文档类型的存储过程。或许是用这些存储过程,能够简化日常的数据管理。为
- 很多人觉得程序猿是高薪的代表,很多人都想学习一门编程语言,如果你想选择一种语言来入门编程,那么Python绝对是首选!其非常接近自然语言,精
- List 是 Python 中常用的数据类型,它一个有序集合,即其中的元素始终保持着初始时的定义的顺序(除非你对它们进行排序或其他修改操作)
- 要是XHTML与CSS能面向对象。。太阳应该从北边升起了。但是,凡事都应该带着OO的思想来看问题,也勉强可以凑数拉。其实,早在零几年就有人提
- 在大型商业应用中,数据的异地容灾备份十分重要,也必不可少。笔者根据自己的实践经验,设计了一套简洁地实现异地数据自动备份的方法,可供数据库管理
- 参数让我们进一步看看CPU的数量是如何影响这些参数的。 参数fast_start_parallel_rollback Oracle并行机制中
- Python 中方法的缺省参数问题在Python中可以缺省给方法制定缺省值,但是这个缺省值在某些情况下确是和我们预期不太一致的&he