Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配

贪婪匹配/最小匹配

Re库默认采用贪婪匹配,即匹配最长的子字符串。在量词后面加一个"?",即可由贪婪匹配化为最小匹配。

‘*’用于将前面的模式匹配0次或多次(贪婪模式,即尽可能多的匹配)。

‘+’用于将前面的模式匹配1次或多次(贪婪模式)。

‘?’用于将前面的模式匹配0次或1次(贪婪模式)。

‘*?,+?,??’即上面三种特殊字符的非贪婪模式(尽可能少的匹配)。

‘{m,n}’用于将前面的模式匹配m次到n次(贪婪模式),即最小匹配m次,最大匹配n次。

‘{m,n}?’即上面‘{m,n}’的非贪婪版本。

代码示例如下:

import re
match = 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.

你可能感兴趣的:(Python随笔17:Python正则表达式基础(4):贪婪匹配和最小匹配)