第11.10节 Python正则表达式的非贪婪模式的重复匹配:\'*?\', \'+?\',和 \'??\'

在《第11.9节 Pytho正则表达式的贪婪模式和非贪婪模式》老猿简单介绍了贪婪模式和非贪婪模式,并说明’’, ‘+’,和 ‘?’ 修饰符都是 贪婪的;它们在字符串进行尽可能多的匹配。有时候并不需要这种行为,只希望匹配到一个就可以,如 希望找到\'<a> b <c>\'中满足“<.>”匹配条件的结果为”<a>”,这就是非贪婪模式。在修饰符’’, ‘+’,和 ‘?’ 之后添加 ‘?’ 将使匹配模式以 非贪婪进行匹配,这时尽量 少 的字符将会被匹配。如使用正则式 <.*?> 将会仅仅匹配 ‘’`。
‘?’, ‘+?’,和 ‘??’ 的匹配含义与’’, ‘+’,和 ‘?’ 类似,只是它们表示是非贪婪模式的重复匹配要求。
案例:

>>> re.search("第.*[章回]",\'第一回灵根育孕源流出 心性修持大道生 第二回悟彻菩提真妙理 \') #贪婪模式 <re.Match object; span=(0, 22), match=\'第一回灵根育孕源流出\u3000心性修持大道生 第二回\'> >>> re.search("第.*?[章回]",\'第一回灵根育孕源流出 心性修持大道生 第二回悟彻菩提真妙理 \') #非贪婪模式 <re.Match object; span=(0, 3), match=\'第一回\'>

老猿Python,跟老猿学Python!
博客地址:https://blog.csdn.net/LaoYuanPython
请大家多多支持,点赞、评论和加关注!谢谢!

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzjdxg.html