贪婪模式和非贪婪模式
在python的正则表达式中,默认是贪婪模式,尽可能多的匹配
import re #在python的正则表达式中,默认是贪婪模式,即京可能多的匹配 print(re.search(r'm.*a','m123a456a78')) #<re.Match object; span=(0, 9), match='m123a456a'> #按道理匹配该规则的有两个,即:m123a和m123a456a,因为python默认为贪婪模式,所以匹配第二个 #可以在贪婪模式后面添加 ? 可以将贪婪模式转换成为非贪婪模式,尽可能少的匹配 print(re.search(r'm.*?a','m123a456a78')) #<re.Match object; span=(0, 5), match='m123a'> #1.两个 ? 的使用,在python中不支持两个以上的?在一个分组内使用 print(re.search(r'aa(\d??)(.*)','aa2343ddd').group(1)) #空 #当两个?同时使用时,最后一个问号作为贪婪模式的关闭操作
来源:原创
发布时间:2022-05-18 18:04:26