贪心和非贪心查找
import re
numreg1 = re.compile(r'(ha){2,4}ll')
numreg2 = re.compile(r'(ha){2,4}?ll') #***为何非贪心查找不生效?***
numreg22 = re.compile(r'ttt(ha){2,4}?')
numreg3 = re.compile(r'(ha){2,4}')
numreg4 = re.compile(r'(ha){2,4}?')
s3 = 'ttthahahahahahahally'
mo1 = numreg1 .search(s3)
mo2 = numreg2 .search(s3)
mo22 = numreg22 .search(s3)
mo3 = numreg3 .search(s3)
mo4 = numreg4 .search(s3)
print(mo1.group())
print(mo2.group())
print(mo22.group())
print(mo3.group())
print(mo4.group())
输出:
hahahahall
hahahahall
ttthaha
hahahaha
haha
python正则表达查找问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2018-09-15 12:27关注
贪婪匹配存在方向性,它从左到右尽量少匹配,但是不能把已经匹配的“吐”出来。
从左往右,找到hahahaha然后才找到ll
你可以用import re numreg2 = re.compile(r'.*(ha)(?=(ha){2,4}?ll)') s3 = 'ttthahahahahahahally' mo2 = numreg2.search(s3) s4 = mo2.group() s4 = s3.replace(s4, "") print(s4)
解决 无用评论 打赏 举报
悬赏问题
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用
- ¥15 微信小程序协议怎么写
- ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
- ¥20 怎么用dlib库的算法识别小麦病虫害
- ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
- ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
- ¥15 有了解d3和topogram.js库的吗?有偿请教