有時候我們使用正則表達式只希望盡可能少的匹配。
比如在對html文件進行正則匹配時:
<span>a</span><span>b</span>
如果我們使用.*匹配
<span>.*</span>
匹配結果是
<span>a</span><span>b</span>
很明顯不能滿足我們的需求。
這時候我們就需要使用非貪婪式匹配,也可以稱為懶惰匹配
懶惰匹配與貪婪匹配的差別就是在貪婪匹配的后面加個?號
同樣對上面的html進行匹配,我們使用.*?
匹配結果是
<span>a</span>
和我們預期效果一樣。
除了.*?這種匹配方式,非貪婪式匹配還包括:
.+? 匹配一次 .?? 不匹配 .{m,n}? 匹配m次