鱼C论坛

 找回密码
 立即注册
查看: 1549|回复: 9

[已解决]关于正则表达式的贪婪匹配和非贪婪匹配我有些问题想请教各位大佬

[复制链接]
发表于 2020-3-4 17:57:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

s='<html><title>I love FishC.com</title></html>'
re.search(r'<.+>',s)
这个可以贪婪的匹配出每一个符合这个表达式的句子
那为什么
re.search(r'FishC','I love FishCFishCFishCFishC')
这个不能匹配出每一个符合FishC的也就是FishCFishCFishC而只能匹配第一个FishC呢
很不解,求助
最佳答案
2020-3-4 18:17:41
zzw10 发表于 2020-3-4 18:13
也就是说只有*或者+这类量化字符的情况下才会有贪婪模式吗

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-4 17:59:43 | 显示全部楼层
search 默认是返回第一个匹配的内容。

如果想返回所有的匹配内容,用 re.findall() ,小甲鱼后面有讲
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 18:03:27 | 显示全部楼层
zltzlt 发表于 2020-3-4 17:59
search 默认是返回第一个匹配的内容。

如果想返回所有的匹配内容,用 re.findall() ,小甲鱼后面有讲

我的意思是,如果按照贪婪匹配的模式,不是应该匹配出全部符合FishC这个字符串的结果吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 18:04:16 | 显示全部楼层
zzw10 发表于 2020-3-4 18:03
我的意思是,如果按照贪婪匹配的模式,不是应该匹配出全部符合FishC这个字符串的结果吗

正则表达式 'FishC' 只能匹配一个 FishC
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 18:05:07 | 显示全部楼层
zltzlt 发表于 2020-3-4 17:59
search 默认是返回第一个匹配的内容。

如果想返回所有的匹配内容,用 re.findall() ,小甲鱼后面有讲

就像第一个那个的search不就是因为贪婪模式的缘故返回了所有匹配表达式的内容吗0.0
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 18:06:30 | 显示全部楼层
是不是只有在有量词参与的情况下,才会考虑到贪婪模式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 18:06:41 | 显示全部楼层
zzw10 发表于 2020-3-4 18:05
就像第一个那个的search不就是因为贪婪模式的缘故返回了所有匹配表达式的内容吗0.0

但是你没有使用 * 或 + 元字符
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-3-4 18:13:06 | 显示全部楼层
zltzlt 发表于 2020-3-4 18:06
但是你没有使用 * 或 + 元字符

也就是说只有*或者+这类量化字符的情况下才会有贪婪模式吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-4 18:17:41 | 显示全部楼层    本楼为最佳答案   
zzw10 发表于 2020-3-4 18:13
也就是说只有*或者+这类量化字符的情况下才会有贪婪模式吗

是的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-4 18:20:09 | 显示全部楼层

谢谢你!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 03:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表