正则替换 | 学习笔记

简介: 快速学习 正则替换

开发者学堂课程【Python入门 2020年版正则替换】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10450


正则替换


正则表达式作用是用来对字符串进行检索和替换

检索: MatchsearchfulLmatchfinditerfindall

替换: sub

想把一个字符串中的数字全部替换成 x,该怎么做。

t = 'afo2dlkf23af245qou3095'

print(re.sub(r'\d', 'x' , t))

输出的结果为:

afoxdlkfxxafxxxqouxxxx

print(re.sub(r'\d+', 'x' , t))

输出的结果为:
afoxdlkfxafxqoux

如果加一个”+“,连在一起的数字都只会变成一个x

第一个参数是正则表达式

第二个参数是新字符或者一个函数

第三个参数是需要被替换的原来的字符串

这个时候我们试图将第二个参数变成一个函数会是什么情况。

p = hello34good23

def test():

pass

print(re.sub(r' ld' , test,p))

运行后会报错:

image.png

Test 需要0个位置参数但是给了1个。Test 函数是自动调用的。

def test(x):

print(x)

print(re.sub(r' ld' , test,p))

这个时候输出的结果就是:

<re.Match object; span=(56), match='3 '>

<re.Match object; span=(67), match='4'>

<re.Match object; span=(1112) match='2 '>

<re.Match object; span=(1213) match='3'>

Hellogood

sub 内部在调用 test 方法时,会把每一个匹配到的数据以 re.Match 的格式传参。

拿到 group(0)之后我们就可以进行下一步操作,我们尝试将这些数字乘2

def test(x):

y = int(x.group(0))

y *= 2

return str(y)

print(re.sub(r' \d' , test,p))

这个时候我们在输出的结果就是:

hello68good46。

我们就可以把数字成功乘2了。注意返回的时候不能直接返回y的值,应该返回一个字符串,返回 str(y)

如果我们想把两个数字变成一个整体,我们就需要用到+,就要变成:

print(re.sub(r' \d+' , test,p)),如果字符串变成 hello35good23,

会输出 hello70good463546被看成一个整体了。

相关文章
|
开发框架 Java 关系型数据库
虚拟机部署与发布J2EE项目(Linux版本)
虚拟机部署与发布J2EE项目(Linux版本)
143 0
|
大数据 PHP 区块链
区块链开发公司浅析未来区块链的发展趋势
 目前,企业的实际应用集中数字货币领域,属于虚拟经济。我们认为,未来的区块链应用将脱虚向实,更多传统企业使用区块链技术来降成本、提升协作效率,激发实体经济增长,是未来一段时间区块链应用的主战场。   与公有链不同,在企业级应用中,大家更关注区块链的管控、监管合规、性能、安全等因素。
1829 0
|
5天前
|
存储 弹性计算 人工智能
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
2025年9月24日,阿里云弹性计算团队多位产品、技术专家及服务器团队技术专家共同在【2025云栖大会】现场带来了《通用计算产品发布与行业实践》的专场论坛,本论坛聚焦弹性计算多款通用算力产品发布。同时,ECS云服务器安全能力、资源售卖模式、计算AI助手等用户体验关键环节也宣布升级,让用云更简单、更智能。海尔三翼鸟云服务负责人刘建锋先生作为特邀嘉宾,莅临现场分享了关于阿里云ECS g9i推动AIoT平台的场景落地实践。
【2025云栖精华内容】 打造持续领先,全球覆盖的澎湃算力底座——通用计算产品发布与行业实践专场回顾
|
4天前
|
云安全 人工智能 自然语言处理
阿里云x硅基流动:AI安全护栏助力构建可信模型生态
阿里云AI安全护栏:大模型的“智能过滤系统”。
|
4天前
|
人工智能 自然语言处理 自动驾驶
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
关于举办首届全国大学生“启真问智”人工智能模型&智能体大赛决赛的通知
|
Linux 虚拟化 iOS开发
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
VMware Workstation Pro 25H2 for Windows & Linux - 领先的免费桌面虚拟化软件
1006 0