正则匹配中.*和.*?的区别,即贪婪和非贪婪模式的区别

使用python re模块进行说明:

import re

str="666777"
res='(.*)'
print(re.compile(res).findall(str))

我们要得到str中的666,使用贪婪匹配.*得到的结果:

['666777']

不是我们想要的结果,使用非贪婪 .*?即可:

import re

str="666777"
res='(.*?)'
print(re.compile(res).findall(str))

结果:

['666']

结论:正则匹配中,贪婪模式会尽多的进行匹配,如例中,
非贪婪是尽可能少的进行匹配.

你可能感兴趣的:(python)