有时候我们使用正则表达式只希望尽可能少的匹配。
比如在对html文件进行正则匹配时:
<span>a</span><span>b</span>
如果我们使用.*匹配
<span>.*</span>
匹配结果是
<span>a</span><span>b</span>
很明显不能满足我们的需求。
这时候我们就需要使用非贪婪式匹配,也可以称为懒惰匹配
懒惰匹配与贪婪匹配的差别就是在贪婪匹配的后面加个?号
同样对上面的html进行匹配,我们使用.*?
匹配结果是
<span>a</span>
和我们预期效果一样。
除了.*?这种匹配方式,非贪婪式匹配还包括:
.+? 匹配一次 .?? 不匹配 .{m,n}? 匹配m次