python正则表达式《.+》和《.+?》的区别?

对于字符串' 676197687211@qq.com 1999-03-26 《凡人修仙传》《水浒传》'匹配书名
《.+》匹配结果:['《凡人修仙传》《水浒传》']
《.+?》匹配结果:['《凡人修仙传》', '《水浒传》']
请问这是什么原因?如果是“?”阻止了贪心,那它是阻止了对哪个字符的贪心?

问号 你可以这样理解,他是尽可能少的匹配。
也就是说只匹配一次,后面的就不管了。
这就是阻止贪心匹配

正则式默认使用贪婪搜索,也就是一直逐字向后检查,直到遇到最远的符合条件的字符串。比如《.+》里向右搜索的时候,遇到“修仙传》”后面这个“》”并不会暂停,而是继续向后搜索,直到后面再也没有“》”后,会把“《”和“》”之间的全部内容作为一个搜索结果返回。
而如果使用?懒惰搜索,则只要遇到第一个“》”就停止搜索,所以返回两个搜索结果。

img


谐音屏蔽,所以我只能这样放出来