正则表达式中的贪婪匹配——python学习笔记

贪婪匹配

1.1 概念

正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符。举例如下,匹配出数字后面的0;以下例子是用python写的,但是贪婪匹配的概念在其他语言中是一致的。

import re

result = re.match(r'^(\d+)(0*)$', '102300').groups()
('102300', '')

print(result)

#result
#('102300', '') 
# 正则表达式中我分了两组,第一组是"\d",第二组是"(0)",返回结果显示"\d"匹配了"102300","0"匹配为空。

由于\d+采用贪婪匹配,直接把后面的0全部匹配了,结果0*只能匹配空字符串了。
这就是正则默认的贪婪匹配。

1.2 解决贪婪匹配

想要让 “\d+” 采用非贪婪匹配(也就是尽可能少匹配),才能把后面的0匹配出来,解决办法是在 “\d+” 加个 “?”,就可以让 “\d+” 采用非贪婪匹配。

import re
result = re.match(r'^(\d+?)(0*)$', '102300').groups()
('102300', '')

print(result)
# 结果
#('1023', '00')

希望能够帮助到大家,有什么问题可以 直接评论即可,我会及时回复的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangpaopao0609

看星空看日落不如看我的眼眸

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值