贪婪匹配/最小匹配
Re库默认采用贪婪匹配,即匹配最长的子字符串。在量词后面加一个"?",即可由贪婪匹配化为最小匹配。
‘*’用于将前面的模式匹配0次或多次(贪婪模式,即尽可能多的匹配)。
‘+’用于将前面的模式匹配1次或多次(贪婪模式)。
‘?’用于将前面的模式匹配0次或1次(贪婪模式)。
‘*?,+?,??’即上面三种特殊字符的非贪婪模式(尽可能少的匹配)。
‘{m,n}’用于将前面的模式匹配m次到n次(贪婪模式),即最小匹配m次,最大匹配n次。
‘{m,n}?’即上面‘{m,n}’的非贪婪版本。
代码示例如下:
import rematch = re.search(r'PY.*N', 'PYANBNCNDN') #默认贪婪匹配。match.group(0)Out[3]: 'PYANBNCNDN' match = re.search(r'PY.*?N', 'PYANBNCNDN') #加了"?"就是最小匹配。match.group(0)Out[5]: 'PYAN'
Python正则表达式基础到此告一段落,剩下的就是多多练习了。
Over.